OSDN Git Service

new helper: is_root_inode()
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 21 Oct 2014 19:20:42 +0000 (15:20 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 31 Oct 2014 21:48:54 +0000 (17:48 -0400)
replace open-coded instances

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/coda/coda_linux.c
fs/coda/coda_linux.h
fs/coda/dir.c
fs/ncpfs/dir.c
include/linux/fs.h

index 1326d38..f1714cf 100644 (file)
@@ -40,12 +40,6 @@ int coda_iscontrol(const char *name, size_t length)
                 (strncmp(name, CODA_CONTROL, CODA_CONTROLLEN) == 0));
 }
 
-/* recognize /coda inode */
-int coda_isroot(struct inode *i)
-{
-    return ( i->i_sb->s_root->d_inode == i );
-}
-
 unsigned short coda_flags_to_cflags(unsigned short flags)
 {
        unsigned short coda_flags = 0;
index d42b725..d6f7a76 100644 (file)
@@ -52,7 +52,6 @@ int coda_setattr(struct dentry *, struct iattr *);
 
 /* this file:  heloers */
 char *coda_f2s(struct CodaFid *f);
-int coda_isroot(struct inode *i);
 int coda_iscontrol(const char *name, size_t length);
 
 void coda_vattr_to_iattr(struct inode *, struct coda_vattr *);
index 9c3dedc..7ff0259 100644 (file)
@@ -107,7 +107,7 @@ static struct dentry *coda_lookup(struct inode *dir, struct dentry *entry, unsig
        }
 
        /* control object, create inode on the fly */
-       if (coda_isroot(dir) && coda_iscontrol(name, length)) {
+       if (is_root_inode(dir) && coda_iscontrol(name, length)) {
                inode = coda_cnode_makectl(sb);
                type = CODA_NOCACHE;
        } else {
@@ -195,7 +195,7 @@ static int coda_create(struct inode *dir, struct dentry *de, umode_t mode, bool
        struct CodaFid newfid;
        struct coda_vattr attrs;
 
-       if (coda_isroot(dir) && coda_iscontrol(name, length))
+       if (is_root_inode(dir) && coda_iscontrol(name, length))
                return -EPERM;
 
        error = venus_create(dir->i_sb, coda_i2f(dir), name, length, 
@@ -227,7 +227,7 @@ static int coda_mkdir(struct inode *dir, struct dentry *de, umode_t mode)
        int error;
        struct CodaFid newfid;
 
-       if (coda_isroot(dir) && coda_iscontrol(name, len))
+       if (is_root_inode(dir) && coda_iscontrol(name, len))
                return -EPERM;
 
        attrs.va_mode = mode;
@@ -261,7 +261,7 @@ static int coda_link(struct dentry *source_de, struct inode *dir_inode,
        int len = de->d_name.len;
        int error;
 
-       if (coda_isroot(dir_inode) && coda_iscontrol(name, len))
+       if (is_root_inode(dir_inode) && coda_iscontrol(name, len))
                return -EPERM;
 
        error = venus_link(dir_inode->i_sb, coda_i2f(inode),
@@ -287,7 +287,7 @@ static int coda_symlink(struct inode *dir_inode, struct dentry *de,
        int symlen;
        int error;
 
-       if (coda_isroot(dir_inode) && coda_iscontrol(name, len))
+       if (is_root_inode(dir_inode) && coda_iscontrol(name, len))
                return -EPERM;
 
        symlen = strlen(symname);
@@ -507,7 +507,7 @@ static int coda_dentry_revalidate(struct dentry *de, unsigned int flags)
                return -ECHILD;
 
        inode = de->d_inode;
-       if (!inode || coda_isroot(inode))
+       if (!inode || is_root_inode(inode))
                goto out;
        if (is_bad_inode(inode))
                goto bad;
index 7cb751d..461f6be 100644 (file)
@@ -198,8 +198,8 @@ ncp_single_volume(struct ncp_server *server)
 
 static inline int ncp_is_server_root(struct inode *inode)
 {
-       return (!ncp_single_volume(NCP_SERVER(inode)) &&
-               inode == inode->i_sb->s_root->d_inode);
+       return !ncp_single_volume(NCP_SERVER(inode)) &&
+               is_root_inode(inode);
 }
 
 
index 00c8e4f..1c12c68 100644 (file)
@@ -2789,6 +2789,11 @@ static inline void inode_has_no_xattr(struct inode *inode)
                inode->i_flags |= S_NOSEC;
 }
 
+static inline bool is_root_inode(struct inode *inode)
+{
+       return inode == inode->i_sb->s_root->d_inode;
+}
+
 static inline bool dir_emit(struct dir_context *ctx,
                            const char *name, int namelen,
                            u64 ino, unsigned type)