lkml.org 
[lkml]   [2009]   [Jun]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 16/24] GFS2: Move gfs2_rmdiri into ops_inode.c
    Date
    Move gfs2_rmdiri() into ops_inode.c and make it static.

    Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>

    diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
    index c03a1a3..9b17447 100644
    --- a/fs/gfs2/inode.c
    +++ b/fs/gfs2/inode.c
    @@ -1046,58 +1046,6 @@ fail:
    return ERR_PTR(error);
    }

    -/**
    - * gfs2_rmdiri - Remove a directory
    - * @dip: The parent directory of the directory to be removed
    - * @name: The name of the directory to be removed
    - * @ip: The GFS2 inode of the directory to be removed
    - *
    - * Assumes Glocks on dip and ip are held
    - *
    - * Returns: errno
    - */
    -
    -int gfs2_rmdiri(struct gfs2_inode *dip, const struct qstr *name,
    - struct gfs2_inode *ip)
    -{
    - struct qstr dotname;
    - int error;
    -
    - if (ip->i_entries != 2) {
    - if (gfs2_consist_inode(ip))
    - gfs2_dinode_print(ip);
    - return -EIO;
    - }
    -
    - error = gfs2_dir_del(dip, name);
    - if (error)
    - return error;
    -
    - error = gfs2_change_nlink(dip, -1);
    - if (error)
    - return error;
    -
    - gfs2_str2qstr(&dotname, ".");
    - error = gfs2_dir_del(ip, &dotname);
    - if (error)
    - return error;
    -
    - gfs2_str2qstr(&dotname, "..");
    - error = gfs2_dir_del(ip, &dotname);
    - if (error)
    - return error;
    -
    - /* It looks odd, but it really should be done twice */
    - error = gfs2_change_nlink(ip, -1);
    - if (error)
    - return error;
    -
    - error = gfs2_change_nlink(ip, -1);
    - if (error)
    - return error;
    -
    - return error;
    -}

    /*
    * gfs2_unlink_ok - check to see that a inode is still in a directory
    diff --git a/fs/gfs2/inode.h b/fs/gfs2/inode.h
    index 2c3ec07..6cd3928 100644
    --- a/fs/gfs2/inode.h
    +++ b/fs/gfs2/inode.h
    @@ -96,8 +96,6 @@ extern struct inode *gfs2_lookupi(struct inode *dir, const struct qstr *name,
    extern struct inode *gfs2_createi(struct gfs2_holder *ghs,
    const struct qstr *name,
    unsigned int mode, dev_t dev);
    -extern int gfs2_rmdiri(struct gfs2_inode *dip, const struct qstr *name,
    - struct gfs2_inode *ip);
    extern int gfs2_unlink_ok(struct gfs2_inode *dip, const struct qstr *name,
    const struct gfs2_inode *ip);
    extern int gfs2_permission(struct inode *inode, int mask);
    diff --git a/fs/gfs2/ops_inode.c b/fs/gfs2/ops_inode.c
    index 1c70fa5..5dacd64 100644
    --- a/fs/gfs2/ops_inode.c
    +++ b/fs/gfs2/ops_inode.c
    @@ -473,6 +473,59 @@ static int gfs2_mkdir(struct inode *dir, struct dentry *dentry, int mode)
    }

    /**
    + * gfs2_rmdiri - Remove a directory
    + * @dip: The parent directory of the directory to be removed
    + * @name: The name of the directory to be removed
    + * @ip: The GFS2 inode of the directory to be removed
    + *
    + * Assumes Glocks on dip and ip are held
    + *
    + * Returns: errno
    + */
    +
    +static int gfs2_rmdiri(struct gfs2_inode *dip, const struct qstr *name,
    + struct gfs2_inode *ip)
    +{
    + struct qstr dotname;
    + int error;
    +
    + if (ip->i_entries != 2) {
    + if (gfs2_consist_inode(ip))
    + gfs2_dinode_print(ip);
    + return -EIO;
    + }
    +
    + error = gfs2_dir_del(dip, name);
    + if (error)
    + return error;
    +
    + error = gfs2_change_nlink(dip, -1);
    + if (error)
    + return error;
    +
    + gfs2_str2qstr(&dotname, ".");
    + error = gfs2_dir_del(ip, &dotname);
    + if (error)
    + return error;
    +
    + gfs2_str2qstr(&dotname, "..");
    + error = gfs2_dir_del(ip, &dotname);
    + if (error)
    + return error;
    +
    + /* It looks odd, but it really should be done twice */
    + error = gfs2_change_nlink(ip, -1);
    + if (error)
    + return error;
    +
    + error = gfs2_change_nlink(ip, -1);
    + if (error)
    + return error;
    +
    + return error;
    +}
    +
    +/**
    * gfs2_rmdir - Remove a directory
    * @dir: The parent directory of the directory to be removed
    * @dentry: The dentry of the directory to remove
    --
    1.6.0.6


    \
     
     \ /
      Last update: 2009-06-10 11:51    [W:0.043 / U:91.920 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site