]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
GFS2: Use gfs2_set_mode() instead of munge_mode()
authorSteven Whitehouse <swhiteho@redhat.com>
Tue, 29 Sep 2009 11:40:19 +0000 (12:40 +0100)
committerSteven Whitehouse <swhiteho@redhat.com>
Thu, 3 Dec 2009 11:45:54 +0000 (11:45 +0000)
These two functions do the same thing, so lets only use
one of them.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/acl.c

index 2168da1216475b2b9d3a9611730b77c89a3022d4..1be314837d3141d61810891e308af26361a6b472 100644 (file)
@@ -104,29 +104,20 @@ int gfs2_check_acl(struct inode *inode, int mask)
        return -EAGAIN;
 }
 
-static int munge_mode(struct gfs2_inode *ip, mode_t mode)
+static int gfs2_set_mode(struct inode *inode, mode_t mode)
 {
-       struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode);
-       struct buffer_head *dibh;
-       int error;
+       int error = 0;
 
-       error = gfs2_trans_begin(sdp, RES_DINODE, 0);
-       if (error)
-               return error;
+       if (mode != inode->i_mode) {
+               struct iattr iattr;
 
-       error = gfs2_meta_inode_buffer(ip, &dibh);
-       if (!error) {
-               gfs2_assert_withdraw(sdp,
-                               (ip->i_inode.i_mode & S_IFMT) == (mode & S_IFMT));
-               ip->i_inode.i_mode = mode;
-               gfs2_trans_add_bh(ip->i_gl, dibh, 1);
-               gfs2_dinode_out(ip, dibh->b_data);
-               brelse(dibh);
-       }
+               iattr.ia_valid = ATTR_MODE;
+               iattr.ia_mode = mode;
 
-       gfs2_trans_end(sdp);
+               error = gfs2_setattr_simple(GFS2_I(inode), &iattr);
+       }
 
-       return 0;
+       return error;
 }
 
 int gfs2_acl_create(struct gfs2_inode *dip, struct gfs2_inode *ip)
@@ -151,7 +142,7 @@ int gfs2_acl_create(struct gfs2_inode *dip, struct gfs2_inode *ip)
        if (!acl) {
                mode &= ~current_umask();
                if (mode != ip->i_inode.i_mode)
-                       error = munge_mode(ip, mode);
+                       error = gfs2_set_mode(&ip->i_inode, mode);
                return error;
        }
 
@@ -181,7 +172,7 @@ int gfs2_acl_create(struct gfs2_inode *dip, struct gfs2_inode *ip)
        if (error)
                goto out;
 munge:
-       error = munge_mode(ip, mode);
+       error = gfs2_set_mode(&ip->i_inode, mode);
 out:
        posix_acl_release(acl);
        kfree(data);
@@ -244,21 +235,6 @@ static int gfs2_xattr_system_get(struct inode *inode, const char *name,
        return gfs2_xattr_get(inode, GFS2_EATYPE_SYS, name, buffer, size);
 }
 
-static int gfs2_set_mode(struct inode *inode, mode_t mode)
-{
-       int error = 0;
-
-       if (mode != inode->i_mode) {
-               struct iattr iattr;
-
-               iattr.ia_valid = ATTR_MODE;
-               iattr.ia_mode = mode;
-
-               error = gfs2_setattr_simple(GFS2_I(inode), &iattr);
-       }
-
-       return error;
-}
 
 static int gfs2_xattr_system_set(struct inode *inode, const char *name,
                                 const void *value, size_t size, int flags)