diff options
author | Christof Schmitt <cs@samba.org> | 2014-12-10 15:50:14 -0700 |
---|---|---|
committer | Christof Schmitt <cs@samba.org> | 2015-03-02 22:31:08 +0100 |
commit | 9948163a64a564de6f423a915dc3dcaae44e3675 (patch) | |
tree | 380b28482d57f71eda60e16bbe2ebbb69e8a8a6c | |
parent | f9629aee81084d4af39858c83eaf966e72e9e0f0 (diff) | |
download | samba-9948163a64a564de6f423a915dc3dcaae44e3675.tar.gz |
gpfs: Move set_gpfs_lease to vfs_gpfs.c
Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Ralph Böhme <slow@samba.org>
-rw-r--r-- | source3/modules/gpfs.c | 20 | ||||
-rw-r--r-- | source3/modules/vfs_gpfs.c | 20 | ||||
-rw-r--r-- | source3/modules/vfs_gpfs.h | 1 |
3 files changed, 20 insertions, 21 deletions
diff --git a/source3/modules/gpfs.c b/source3/modules/gpfs.c index 585c522f641..c5ed93a6b6e 100644 --- a/source3/modules/gpfs.c +++ b/source3/modules/gpfs.c @@ -229,26 +229,6 @@ int gpfswrap_getfilesetid(char *pathname, char *name, int *idp) return gpfs_getfilesetid_fn(pathname, name, idp); } -int set_gpfs_lease(int fd, int leasetype) -{ - int gpfs_type = GPFS_LEASE_NONE; - - if (leasetype == F_RDLCK) { - gpfs_type = GPFS_LEASE_READ; - } - if (leasetype == F_WRLCK) { - gpfs_type = GPFS_LEASE_WRITE; - } - - /* we unconditionally set CAP_LEASE, rather than looking for - -1/EACCES as there is a bug in some versions of - libgpfs_gpl.so which results in a leaked fd on /dev/ss0 - each time we try this with the wrong capabilities set - */ - linux_set_lease_capability(); - return gpfswrap_set_lease(fd, gpfs_type); -} - int get_gpfs_quota(const char *pathname, int type, int id, struct gpfs_quotaInfo *qi) { diff --git a/source3/modules/vfs_gpfs.c b/source3/modules/vfs_gpfs.c index 053b673d717..ab9cfee1f72 100644 --- a/source3/modules/vfs_gpfs.c +++ b/source3/modules/vfs_gpfs.c @@ -161,6 +161,26 @@ static int vfs_gpfs_close(vfs_handle_struct *handle, files_struct *fsp) return SMB_VFS_NEXT_CLOSE(handle, fsp); } +static int set_gpfs_lease(int fd, int leasetype) +{ + int gpfs_type = GPFS_LEASE_NONE; + + if (leasetype == F_RDLCK) { + gpfs_type = GPFS_LEASE_READ; + } + if (leasetype == F_WRLCK) { + gpfs_type = GPFS_LEASE_WRITE; + } + + /* we unconditionally set CAP_LEASE, rather than looking for + -1/EACCES as there is a bug in some versions of + libgpfs_gpl.so which results in a leaked fd on /dev/ss0 + each time we try this with the wrong capabilities set + */ + linux_set_lease_capability(); + return gpfswrap_set_lease(fd, gpfs_type); +} + static int vfs_gpfs_setlease(vfs_handle_struct *handle, files_struct *fsp, int leasetype) { diff --git a/source3/modules/vfs_gpfs.h b/source3/modules/vfs_gpfs.h index 61389b9618a..b3c3e53ff6c 100644 --- a/source3/modules/vfs_gpfs.h +++ b/source3/modules/vfs_gpfs.h @@ -45,7 +45,6 @@ int gpfswrap_set_times_path(char *pathname, int flags, int gpfswrap_quotactl(char *pathname, int cmd, int id, void *bufp); int gpfswrap_fcntl(int fd, void *argp); int gpfswrap_getfilesetid(char *pathname, char *name, int *idp); -int set_gpfs_lease(int fd, int leasetype); int get_gpfs_quota(const char *pathname, int type, int id, struct gpfs_quotaInfo *qi); int get_gpfs_fset_id(const char *pathname, int *fset_id); |