#include "includes.h"
#include "vfs_posix.h"
-#include "lib/util/unix_privs.h"
+#include "../lib/util/unix_privs.h"
#include "librpc/gen_ndr/ndr_xattr.h"
#include "param/param.h"
+#include "ntvfs/posix/posix_eadb_proto.h"
/*
pull a xattr as a blob
if (NT_STATUS_EQUAL(status, NT_STATUS_NOT_SUPPORTED)||
NT_STATUS_EQUAL(status, NT_STATUS_NOT_IMPLEMENTED)||
NT_STATUS_EQUAL(status, NT_STATUS_INVALID_SYSTEM_SERVICE)) {
- DEBUG(5,("pvfs_xattr: xattr not supported in filesystem: %s\n", nt_errstr(status)));
+ DEBUG(2,("pvfs_xattr: xattr not supported in filesystem: %s\n", nt_errstr(status)));
pvfs->flags &= ~PVFS_FLAG_XATTR_ENABLE;
status = NT_STATUS_NOT_FOUND;
}
const char *fname, int fd)
{
if (pvfs->ea_db) {
- return delete_xattr_tdb(pvfs, attr_name, fname, fd);
+ return delete_posix_eadb(pvfs, attr_name, fname, fd);
}
return delete_xattr_system(pvfs, attr_name, fname, fd);
}
NTSTATUS pvfs_xattr_unlink_hook(struct pvfs_state *pvfs, const char *fname)
{
if (pvfs->ea_db) {
- return unlink_xattr_tdb(pvfs, fname);
+ return unlink_posix_eadb(pvfs, fname);
}
return unlink_xattr_system(pvfs, fname);
}
}
/* pull the blob */
- ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, lp_iconv_convenience(pvfs->ntvfs->ctx->lp_ctx),
- p, (ndr_pull_flags_fn_t)pull_fn);
+ ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, p,
+ (ndr_pull_flags_fn_t)pull_fn);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
return ndr_map_error2ntstatus(ndr_err);
}
NTSTATUS status;
enum ndr_err_code ndr_err;
- ndr_err = ndr_push_struct_blob(&blob, mem_ctx, lp_iconv_convenience(pvfs->ntvfs->ctx->lp_ctx), p, (ndr_push_flags_fn_t)push_fn);
+ ndr_err = ndr_push_struct_blob(&blob, mem_ctx, p, (ndr_push_flags_fn_t)push_fn);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
talloc_free(mem_ctx);
return ndr_map_error2ntstatus(ndr_err);
status = pvfs_xattr_ndr_load(pvfs, mem_ctx, name->full_name,
fd, XATTR_DOSATTRIB_NAME,
- &attrib,
- (ndr_pull_flags_fn_t)ndr_pull_xattr_DosAttrib);
+ &attrib,
+ (void *) ndr_pull_xattr_DosAttrib);
/* not having a DosAttrib is not an error */
if (NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
return pvfs_xattr_ndr_save(pvfs, name->full_name, fd,
XATTR_DOSATTRIB_NAME, &attrib,
- (ndr_push_flags_fn_t)ndr_push_xattr_DosAttrib);
+ (void *) ndr_push_xattr_DosAttrib);
}
return NT_STATUS_OK;
}
status = pvfs_xattr_ndr_load(pvfs, eas, name->full_name, fd, XATTR_DOSEAS_NAME,
- eas, (ndr_pull_flags_fn_t)ndr_pull_xattr_DosEAs);
+ eas, (void *) ndr_pull_xattr_DosEAs);
if (NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
return NT_STATUS_OK;
}
return NT_STATUS_OK;
}
return pvfs_xattr_ndr_save(pvfs, name->full_name, fd, XATTR_DOSEAS_NAME, eas,
- (ndr_push_flags_fn_t)ndr_push_xattr_DosEAs);
+ (void *) ndr_push_xattr_DosEAs);
}
status = pvfs_xattr_ndr_load(pvfs, streams, name->full_name, fd,
XATTR_DOSSTREAMS_NAME,
streams,
- (ndr_pull_flags_fn_t)ndr_pull_xattr_DosStreams);
+ (void *) ndr_pull_xattr_DosStreams);
if (NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
return NT_STATUS_OK;
}
return pvfs_xattr_ndr_save(pvfs, name->full_name, fd,
XATTR_DOSSTREAMS_NAME,
streams,
- (ndr_push_flags_fn_t)ndr_push_xattr_DosStreams);
+ (void *) ndr_push_xattr_DosStreams);
}
status = pvfs_xattr_ndr_load(pvfs, acl, name->full_name, fd,
XATTR_NTACL_NAME,
acl,
- (ndr_pull_flags_fn_t)ndr_pull_xattr_NTACL);
+ (void *) ndr_pull_xattr_NTACL);
return status;
}
status = pvfs_xattr_ndr_save(pvfs, name->full_name, fd,
XATTR_NTACL_NAME,
acl,
- (ndr_push_flags_fn_t)ndr_push_xattr_NTACL);
+ (void *) ndr_push_xattr_NTACL);
talloc_free(privs);
return status;
}