lkml.org 
[lkml]   [2008]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 01/22] nfsd: clean up mnt_want_write calls
    From: Miklos Szeredi <mszeredi@suse.cz>

    Multiple mnt_want_write() calls in the switch statement looks really
    ugly.

    Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
    ---
    fs/nfsd/vfs.c | 25 +++++++++++--------------
    1 file changed, 11 insertions(+), 14 deletions(-)

    Index: linux-2.6/fs/nfsd/vfs.c
    ===================================================================
    --- linux-2.6.orig/fs/nfsd/vfs.c 2008-05-16 17:50:36.000000000 +0200
    +++ linux-2.6/fs/nfsd/vfs.c 2008-05-16 17:50:42.000000000 +0200
    @@ -1248,36 +1248,34 @@ nfsd_create(struct svc_rqst *rqstp, stru
    iap->ia_mode = 0;
    iap->ia_mode = (iap->ia_mode & S_IALLUGO) | type;

    + err = nfserr_inval;
    + if (!S_ISREG(type) && !S_ISDIR(type) && !special_file(type)) {
    + printk(KERN_WARNING "nfsd: bad file type %o in nfsd_create\n",
    + type);
    + goto out;
    + }
    +
    + host_err = mnt_want_write(fhp->fh_export->ex_path.mnt);
    + if (host_err)
    + goto out_nfserr;
    +
    /*
    * Get the dir op function pointer.
    */
    err = 0;
    switch (type) {
    case S_IFREG:
    - host_err = mnt_want_write(fhp->fh_export->ex_path.mnt);
    - if (host_err)
    - goto out_nfserr;
    host_err = vfs_create(dirp, dchild, iap->ia_mode, NULL);
    break;
    case S_IFDIR:
    - host_err = mnt_want_write(fhp->fh_export->ex_path.mnt);
    - if (host_err)
    - goto out_nfserr;
    host_err = vfs_mkdir(dirp, dchild, iap->ia_mode);
    break;
    case S_IFCHR:
    case S_IFBLK:
    case S_IFIFO:
    case S_IFSOCK:
    - host_err = mnt_want_write(fhp->fh_export->ex_path.mnt);
    - if (host_err)
    - goto out_nfserr;
    host_err = vfs_mknod(dirp, dchild, iap->ia_mode, rdev);
    break;
    - default:
    - printk("nfsd: bad file type %o in nfsd_create\n", type);
    - host_err = -EINVAL;
    - goto out_nfserr;
    }
    if (host_err < 0) {
    mnt_drop_write(fhp->fh_export->ex_path.mnt);
    @@ -1289,7 +1287,6 @@ nfsd_create(struct svc_rqst *rqstp, stru
    write_inode_now(dchild->d_inode, 1);
    }

    -
    err2 = nfsd_create_setattr(rqstp, resfhp, iap);
    if (err2)
    err = err2;
    --


    \
     
     \ /
      Last update: 2008-05-16 18:41    [W:3.367 / U:0.624 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site