s4-ntvfs: Rename xattr_tdb.c to posix_eadb.c and make more generally useful
[kai/samba.git] / source4 / ntvfs / posix / pvfs_xattr.c
index 3cbbcbe92f638a721c5c112f6ea23bf7183fb14c..82ce579676a6f6a7c969ccb8e672029bd0841f8f 100644 (file)
 
 #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
@@ -50,7 +51,7 @@ static NTSTATUS pull_xattr_blob(struct pvfs_state *pvfs,
        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;
        }
@@ -81,7 +82,7 @@ static NTSTATUS delete_xattr(struct pvfs_state *pvfs, const char *attr_name,
                             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);
 }
@@ -92,7 +93,7 @@ static NTSTATUS delete_xattr(struct pvfs_state *pvfs, const char *attr_name,
 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);
 }
@@ -117,8 +118,8 @@ NTSTATUS pvfs_xattr_ndr_load(struct pvfs_state *pvfs,
        }
 
        /* 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);
        }
@@ -140,7 +141,7 @@ NTSTATUS pvfs_xattr_ndr_save(struct pvfs_state *pvfs,
        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);
@@ -176,8 +177,8 @@ NTSTATUS pvfs_dosattrib_load(struct pvfs_state *pvfs, struct pvfs_filename *name
 
        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)) {
@@ -271,7 +272,7 @@ NTSTATUS pvfs_dosattrib_save(struct pvfs_state *pvfs, struct pvfs_filename *name
 
        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);
 }
 
 
@@ -287,7 +288,7 @@ NTSTATUS pvfs_doseas_load(struct pvfs_state *pvfs, struct pvfs_filename *name, i
                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;
        }
@@ -304,7 +305,7 @@ NTSTATUS pvfs_doseas_save(struct pvfs_state *pvfs, struct pvfs_filename *name, i
                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);
 }
 
 
@@ -322,7 +323,7 @@ NTSTATUS pvfs_streams_load(struct pvfs_state *pvfs, struct pvfs_filename *name,
        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;
        }
@@ -341,7 +342,7 @@ NTSTATUS pvfs_streams_save(struct pvfs_state *pvfs, struct pvfs_filename *name,
        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);
 }
 
 
@@ -359,7 +360,7 @@ NTSTATUS pvfs_acl_load(struct pvfs_state *pvfs, struct pvfs_filename *name, int
        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;
 }
 
@@ -382,7 +383,7 @@ NTSTATUS pvfs_acl_save(struct pvfs_state *pvfs, struct pvfs_filename *name, int
        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;
 }