gpfswrap: Add wrapper for gpfs_set_winattrs
authorChristof Schmitt <cs@samba.org>
Wed, 23 Mar 2016 05:38:11 +0000 (22:38 -0700)
committerJeremy Allison <jra@samba.org>
Fri, 1 Apr 2016 17:28:23 +0000 (19:28 +0200)
Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
lib/util/gpfswrap.c
lib/util/gpfswrap.h

index 4c7410552bec3ccff38196dcfb98fa930d0616d0..0632ee2075727cb2f04db5ce4736d302c871b24b 100644 (file)
@@ -29,6 +29,8 @@ static int (*gpfs_get_realfilename_path_fn)(char *pathname, char *filenamep,
                                            int *len);
 static int (*gpfs_set_winattrs_path_fn)(char *pathname, int flags,
                                        struct gpfs_winattr *attrs);
+static int (*gpfs_set_winattrs_fn)(int fd, int flags,
+                                  struct gpfs_winattr *attrs);
 static int (*gpfs_get_winattrs_path_fn)(char *pathname,
                                        struct gpfs_winattr *attrs);
 static int (*gpfs_get_winattrs_fn)(int fd, struct gpfs_winattr *attrs);
@@ -63,6 +65,7 @@ int gpfswrap_init(void)
        gpfs_putacl_fn                = dlsym(l, "gpfs_putacl");
        gpfs_get_realfilename_path_fn = dlsym(l, "gpfs_get_realfilename_path");
        gpfs_set_winattrs_path_fn     = dlsym(l, "gpfs_set_winattrs_path");
+       gpfs_set_winattrs_fn          = dlsym(l, "gpfs_set_winattrs");
        gpfs_get_winattrs_path_fn     = dlsym(l, "gpfs_get_winattrs_path");
        gpfs_get_winattrs_fn          = dlsym(l, "gpfs_get_winattrs");
        gpfs_prealloc_fn              = dlsym(l, "gpfs_prealloc");
@@ -140,6 +143,16 @@ int gpfswrap_set_winattrs_path(char *pathname, int flags,
        return gpfs_set_winattrs_path_fn(pathname, flags, attrs);
 }
 
+int gpfswrap_set_winattrs(int fd, int flags, struct gpfs_winattr *attrs)
+{
+       if (gpfs_set_winattrs_fn == NULL) {
+               errno = ENOSYS;
+               return -1;
+       }
+
+       return gpfs_set_winattrs_fn(fd, flags, attrs);
+}
+
 int gpfswrap_get_winattrs_path(char *pathname, struct gpfs_winattr *attrs)
 {
        if (gpfs_get_winattrs_path_fn == NULL) {
index 25b1ba8046dc3e698f590c6030d3e9c7f24aea13..1c9c64f7e8c06284d3600ff9c7c455126a2b825d 100644 (file)
@@ -34,6 +34,7 @@ int gpfswrap_putacl(char *pathname, int flags, void *acl);
 int gpfswrap_get_realfilename_path(char *pathname, char *filenamep, int *len);
 int gpfswrap_set_winattrs_path(char *pathname, int flags,
                               struct gpfs_winattr *attrs);
+int gpfswrap_set_winattrs(int fd, int flags, struct gpfs_winattr *attrs);
 int gpfswrap_get_winattrs_path(char *pathname, struct gpfs_winattr *attrs);
 int gpfswrap_get_winattrs(int fd, struct gpfs_winattr *attrs);
 int gpfswrap_prealloc(int fd, gpfs_off64_t start, gpfs_off64_t bytes);