ChangeSet 1.2320, 2005/03/31 09:01:33-08:00, [EMAIL PROTECTED]

        [PATCH] nfsd4: fix open returns for other claim types
        
        Switch on OPEN claim type instead of if-else. add remaining OPEN claim 
types.
        
        Return nfserr_notsupp instead of nfserr_inval for valid claim types.
        
        Signed-off-by: Andy Adamson <[EMAIL PROTECTED]>
        Signed-off-by: J. Bruce Fields <[EMAIL PROTECTED]>
        Signed-off-by: Neil Brown <[EMAIL PROTECTED]>
        Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
        Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>



 nfs4proc.c |   32 +++++++++++++++++++++-----------
 1 files changed, 21 insertions(+), 11 deletions(-)


diff -Nru a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
--- a/fs/nfsd/nfs4proc.c        2005-03-31 10:32:39 -08:00
+++ b/fs/nfsd/nfs4proc.c        2005-03-31 10:32:39 -08:00
@@ -197,30 +197,40 @@
        }
        if (status)
                goto out;
-       if (open->op_claim_type == NFS4_OPEN_CLAIM_NULL) {
+       switch (open->op_claim_type) {
+               case NFS4_OPEN_CLAIM_NULL:
        /*
         * This block of code will (1) set CURRENT_FH to the file being opened,
         * creating it if necessary, (2) set open->op_cinfo,
         * (3) set open->op_truncate if the file is to be truncated
         * after opening, (4) do permission checking.
         */
-               status = do_open_lookup(rqstp, current_fh, open);
-               if (status)
-                       goto out;
-       } else if (open->op_claim_type == NFS4_OPEN_CLAIM_PREVIOUS) {
+                       status = do_open_lookup(rqstp, current_fh, open);
+                       if (status)
+                               goto out;
+                       break;
+               case NFS4_OPEN_CLAIM_PREVIOUS:
        /*
        * The CURRENT_FH is already set to the file being opened. This
        * block of code will (1) set open->op_cinfo, (2) set
        * open->op_truncate if the file is to be truncated after opening,
        * (3) do permission checking.
        */
-               status = do_open_fhandle(rqstp, current_fh, open);
-               if (status)
+                       status = do_open_fhandle(rqstp, current_fh, open);
+                       if (status)
+                               goto out;
+                       break;
+               case NFS4_OPEN_CLAIM_DELEGATE_CUR:
+               case NFS4_OPEN_CLAIM_DELEGATE_PREV:
+                       printk("NFSD: unsupported OPEN claim type %d\n",
+                               open->op_claim_type);
+                       status = nfserr_notsupp;
+                       goto out;
+               default:
+                       printk("NFSD: Invalid OPEN claim type %d\n",
+                               open->op_claim_type);
+                       status = nfserr_inval;
                        goto out;
-       } else {
-               printk("NFSD: unsupported OPEN claim type\n");
-               status = nfserr_inval;
-               goto out;
        }
        /*
         * nfsd4_process_open2() does the actual opening of the file.  If
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to