diff options
author | Volker Lendecke <vl@samba.org> | 2009-03-02 14:56:01 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2009-03-04 11:23:12 +0100 |
commit | e8484e01ed6c3893f89abeec5f7a2d214d77c576 (patch) | |
tree | b5eeaa59a1370f1abc00d4aaac98d73068b7b6da | |
parent | fb70a8a255f7fd40c7e578d9d21977259f9aa86c (diff) | |
download | samba-e8484e01ed6c3893f89abeec5f7a2d214d77c576.tar.gz samba-e8484e01ed6c3893f89abeec5f7a2d214d77c576.tar.bz2 samba-e8484e01ed6c3893f89abeec5f7a2d214d77c576.zip |
Make use of gpfs_get_real_filename optional
-rw-r--r-- | source3/modules/gpfs.c | 6 | ||||
-rw-r--r-- | source3/modules/vfs_gpfs.c | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/source3/modules/gpfs.c b/source3/modules/gpfs.c index 16599005b9..9fc4524654 100644 --- a/source3/modules/gpfs.c +++ b/source3/modules/gpfs.c @@ -26,6 +26,7 @@ static bool gpfs_share_modes; static bool gpfs_leases; +static bool gpfs_getrealfilename; static int (*gpfs_set_share_fn)(int fd, unsigned int allow, unsigned int deny); static int (*gpfs_set_lease_fn)(int fd, unsigned int leaseType); @@ -139,7 +140,8 @@ int smbd_gpfs_putacl(char *pathname, int flags, void *acl) int smbd_gpfs_get_realfilename_path(char *pathname, char *filenamep, int *buflen) { - if (gpfs_get_realfilename_path_fn == NULL) { + if ((!gpfs_getrealfilename) + || (gpfs_get_realfilename_path_fn == NULL)) { errno = ENOSYS; return -1; } @@ -208,6 +210,8 @@ void init_gpfs(void) gpfs_share_modes = lp_parm_bool(-1, "gpfs", "sharemodes", True); gpfs_leases = lp_parm_bool(-1, "gpfs", "leases", True); + gpfs_getrealfilename = lp_parm_bool(-1, "gpfs", "getrealfilename", + True); return; } diff --git a/source3/modules/vfs_gpfs.c b/source3/modules/vfs_gpfs.c index 1d7cdba014..3c061ece79 100644 --- a/source3/modules/vfs_gpfs.c +++ b/source3/modules/vfs_gpfs.c @@ -96,6 +96,11 @@ static int vfs_gpfs_get_real_filename(struct vfs_handle_struct *handle, TALLOC_FREE(full_path); + if ((result == -1) && (errno == ENOSYS)) { + return SMB_VFS_NEXT_GET_REAL_FILENAME( + handle, path, name, mem_ctx, found_name); + } + if (result == -1) { DEBUG(10, ("smbd_gpfs_get_realfilename_path returned %s\n", strerror(errno))); |