]> git.hungrycats.org Git - linux/commitdiff
[PATCH] kNFSd: readdir error code fix
authorAndrew Morton <akpm@osdl.org>
Thu, 26 Feb 2004 14:47:30 +0000 (06:47 -0800)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Thu, 26 Feb 2004 14:47:30 +0000 (06:47 -0800)
From: NeilBrown <neilb@cse.unsw.edu.au>

changes nfserr_readdir_nospc to nfserr_toosmall, following rfc3530 which has
no nfserr_readdir_nospc.

error 10030 which was nfserr_readdir_nospc is actually nfserr_restorefh.

fs/nfsd/nfs3xdr.c
fs/nfsd/nfs4xdr.c
fs/nfsd/nfsxdr.c
fs/nfsd/vfs.c
include/linux/nfs.h
include/linux/nfsd/nfsd.h

index 0e927618d1fde8661eb43f21ebc77e9d71788a3e..b7573950942b015ac805fed1ddbc4014f096c2b9 100644 (file)
@@ -796,7 +796,7 @@ encode_entry(struct readdir_cd *ccd, const char *name,
        elen = slen + NFS3_ENTRY_BAGGAGE
                + (plus? NFS3_ENTRYPLUS_BAGGAGE : 0);
        if (cd->buflen < elen) {
-               cd->common.err = nfserr_readdir_nospc;
+               cd->common.err = nfserr_toosmall;
                return -EINVAL;
        }
        *p++ = xdr_one;                          /* mark entry present */
index 5ff917c855601e73ec2b1048d4abe9a59bea7ab9..1f191e3cc96ff8fb291a415d7def59ded8f56c94 100644 (file)
@@ -1688,7 +1688,7 @@ out:
        return 0;
 
 nospc:
-       cd->common.err = nfserr_readdir_nospc;
+       cd->common.err = nfserr_toosmall;
        return -EINVAL;
 }
 
@@ -2097,7 +2097,7 @@ nfsd4_encode_readdir(struct nfsd4_compoundres *resp, int nfserr, struct nfsd4_re
         */
        maxcount = (maxcount >> 2) - 4;
        if (maxcount < 0)
-               return nfserr_readdir_nospc;
+               return nfserr_toosmall;
 
        svc_take_page(resp->rqstp);
        page = page_address(resp->rqstp->rq_respages[resp->rqstp->rq_resused-1]);
@@ -2111,9 +2111,9 @@ nfsd4_encode_readdir(struct nfsd4_compoundres *resp, int nfserr, struct nfsd4_re
                              &offset,
                              &readdir->common, nfsd4_encode_dirent);
        if (nfserr == nfs_ok &&
-           readdir->common.err == nfserr_readdir_nospc &&
+           readdir->common.err == nfserr_toosmall &&
            readdir->buffer == page) 
-               nfserr = nfserr_readdir_nospc;
+               nfserr = nfserr_toosmall;
        if (nfserr)
                return nfserr;
 
index 6c87eac22769e57df770e21ea36f3483e33eec38..1d582f746bea8fdc0097717fa8b5104bb385ef11 100644 (file)
@@ -484,7 +484,7 @@ nfssvc_encode_entry(struct readdir_cd *ccd, const char *name,
 
        slen = XDR_QUADLEN(namlen);
        if ((buflen = cd->buflen - slen - 4) < 0) {
-               cd->common.err = nfserr_readdir_nospc;
+               cd->common.err = nfserr_toosmall;
                return -EINVAL;
        }
        *p++ = xdr_one;                         /* mark entry present */
index 1937e4f1b9c9519667bc6976f497a58f94e890a1..4dbd4d2fd0be55b89724b0c2accf2b5c8ff2c1ec 100644 (file)
@@ -1494,7 +1494,7 @@ nfsd_readdir(struct svc_rqst *rqstp, struct svc_fh *fhp, loff_t *offsetp,
                err = cdp->err;
        *offsetp = file.f_pos;
 
-       if (err == nfserr_eof || err == nfserr_readdir_nospc)
+       if (err == nfserr_eof || err == nfserr_toosmall)
                err = nfs_ok; /* can still be found in ->err */
 out_close:
        nfsd_close(&file);
index 64e8b9b4d39ee007ff495325d41b3d38197c3937..b30265f03e00282c39d2a9cf288f55093d2062a9 100644 (file)
@@ -92,7 +92,7 @@
        NFSERR_NOT_SAME = 10027,        /*       v4 */
        NFSERR_LOCK_RANGE = 10028,      /*       v4 */
        NFSERR_SYMLINK = 10029,         /*       v4 */
-       NFSERR_READDIR_NOSPC = 10030,   /*       v4 */
+       NFSERR_RESTOREFH = 10030,       /*       v4 */
        NFSERR_LEASE_MOVED = 10031,     /*       v4 */
        NFSERR_ATTRNOTSUPP = 10032,     /*       v4 */
        NFSERR_NO_GRACE = 10033,        /*       v4 */
index 9a23efb48ec5f763fa8cab4005f516d0f6a77a00..49247c638cf8c525c3c1ee33066013c03ce00f64 100644 (file)
@@ -190,7 +190,7 @@ void                nfsd_lockd_shutdown(void);
 #define nfserr_bad_seqid       __constant_htonl(NFSERR_BAD_SEQID)
 #define        nfserr_symlink          __constant_htonl(NFSERR_SYMLINK)
 #define        nfserr_not_same         __constant_htonl(NFSERR_NOT_SAME)
-#define        nfserr_readdir_nospc    __constant_htonl(NFSERR_READDIR_NOSPC)
+#define        nfserr_restorefh        __constant_htonl(NFSERR_RESTOREFH)
 #define        nfserr_bad_xdr          __constant_htonl(NFSERR_BAD_XDR)
 #define        nfserr_openmode         __constant_htonl(NFSERR_OPENMODE)