summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2009-03-02 14:56:01 +0100
committerMichael Adam <obnox@samba.org>2009-03-04 11:23:12 +0100
commite8484e01ed6c3893f89abeec5f7a2d214d77c576 (patch)
treeb5eeaa59a1370f1abc00d4aaac98d73068b7b6da
parentfb70a8a255f7fd40c7e578d9d21977259f9aa86c (diff)
downloadsamba-e8484e01ed6c3893f89abeec5f7a2d214d77c576.tar.gz
samba-e8484e01ed6c3893f89abeec5f7a2d214d77c576.tar.bz2
samba-e8484e01ed6c3893f89abeec5f7a2d214d77c576.zip
Make use of gpfs_get_real_filename optional
-rw-r--r--source3/modules/gpfs.c6
-rw-r--r--source3/modules/vfs_gpfs.c5
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)));