diff options
author | Gaurav <gaurav@gluster.com> | 2011-09-22 12:48:41 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2011-09-22 04:51:22 -0700 |
commit | 2e61c86ba89d546c7cab522b53d6b9c7f164cd8c (patch) | |
tree | f1823957f856d0b5475a29d49623c8fb2f6dc631 /xlators/nfs/server/src/nfs3-helpers.c | |
parent | b8f2f460f9a5f977ef6debc2e59cae75324c95ca (diff) |
NFS : Posix compliance fixes.
Change-Id: I4f1d8883a3eedee20557e306815674a6dc062bfe
BUG: 1337
Reviewed-on: http://review.gluster.com/487
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
Diffstat (limited to 'xlators/nfs/server/src/nfs3-helpers.c')
-rw-r--r-- | xlators/nfs/server/src/nfs3-helpers.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/xlators/nfs/server/src/nfs3-helpers.c b/xlators/nfs/server/src/nfs3-helpers.c index 5708db1b83d..6ead0154690 100644 --- a/xlators/nfs/server/src/nfs3-helpers.c +++ b/xlators/nfs/server/src/nfs3-helpers.c @@ -575,13 +575,14 @@ nfs3_accessbits (int32_t accbits) uint32_t accresult = 0; if (accbits & POSIX_READ) - accresult |= (ACCESS3_READ | ACCESS3_LOOKUP); + accresult |= ACCESS3_READ; if (accbits & POSIX_WRITE) accresult |= (ACCESS3_MODIFY | ACCESS3_EXTEND); + /* lookup on directory allowed only in case of execute permission */ if (accbits & POSIX_EXEC) - accresult |= ACCESS3_EXECUTE; + accresult |= (ACCESS3_EXECUTE | ACCESS3_LOOKUP); return accresult; } @@ -591,13 +592,14 @@ nfs3_request_to_accessbits (int32_t accbits) { uint32_t acc_request = 0; - if (accbits & (ACCESS3_READ | ACCESS3_LOOKUP)) + if (accbits & ACCESS3_READ) acc_request |= POSIX_READ; if (accbits & (ACCESS3_MODIFY | ACCESS3_EXTEND)) acc_request |= POSIX_WRITE; - if (accbits & ACCESS3_EXECUTE) + /* For lookup on directory check for execute permission */ + if (accbits & (ACCESS3_EXECUTE | ACCESS3_LOOKUP)) acc_request |= POSIX_EXEC; return acc_request; |