提交 a7400222 编写于 作者: A Al Viro

new helper: is_root_inode()

replace open-coded instances
Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
上级 ac7576f4
...@@ -40,12 +40,6 @@ int coda_iscontrol(const char *name, size_t length) ...@@ -40,12 +40,6 @@ int coda_iscontrol(const char *name, size_t length)
(strncmp(name, CODA_CONTROL, CODA_CONTROLLEN) == 0)); (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_to_cflags(unsigned short flags)
{ {
unsigned short coda_flags = 0; unsigned short coda_flags = 0;
......
...@@ -52,7 +52,6 @@ int coda_setattr(struct dentry *, struct iattr *); ...@@ -52,7 +52,6 @@ int coda_setattr(struct dentry *, struct iattr *);
/* this file: heloers */ /* this file: heloers */
char *coda_f2s(struct CodaFid *f); char *coda_f2s(struct CodaFid *f);
int coda_isroot(struct inode *i);
int coda_iscontrol(const char *name, size_t length); int coda_iscontrol(const char *name, size_t length);
void coda_vattr_to_iattr(struct inode *, struct coda_vattr *); void coda_vattr_to_iattr(struct inode *, struct coda_vattr *);
......
...@@ -107,7 +107,7 @@ static struct dentry *coda_lookup(struct inode *dir, struct dentry *entry, unsig ...@@ -107,7 +107,7 @@ static struct dentry *coda_lookup(struct inode *dir, struct dentry *entry, unsig
} }
/* control object, create inode on the fly */ /* 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); inode = coda_cnode_makectl(sb);
type = CODA_NOCACHE; type = CODA_NOCACHE;
} else { } else {
...@@ -195,7 +195,7 @@ static int coda_create(struct inode *dir, struct dentry *de, umode_t mode, bool ...@@ -195,7 +195,7 @@ static int coda_create(struct inode *dir, struct dentry *de, umode_t mode, bool
struct CodaFid newfid; struct CodaFid newfid;
struct coda_vattr attrs; struct coda_vattr attrs;
if (coda_isroot(dir) && coda_iscontrol(name, length)) if (is_root_inode(dir) && coda_iscontrol(name, length))
return -EPERM; return -EPERM;
error = venus_create(dir->i_sb, coda_i2f(dir), name, length, 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) ...@@ -227,7 +227,7 @@ static int coda_mkdir(struct inode *dir, struct dentry *de, umode_t mode)
int error; int error;
struct CodaFid newfid; struct CodaFid newfid;
if (coda_isroot(dir) && coda_iscontrol(name, len)) if (is_root_inode(dir) && coda_iscontrol(name, len))
return -EPERM; return -EPERM;
attrs.va_mode = mode; attrs.va_mode = mode;
...@@ -261,7 +261,7 @@ static int coda_link(struct dentry *source_de, struct inode *dir_inode, ...@@ -261,7 +261,7 @@ static int coda_link(struct dentry *source_de, struct inode *dir_inode,
int len = de->d_name.len; int len = de->d_name.len;
int error; int error;
if (coda_isroot(dir_inode) && coda_iscontrol(name, len)) if (is_root_inode(dir_inode) && coda_iscontrol(name, len))
return -EPERM; return -EPERM;
error = venus_link(dir_inode->i_sb, coda_i2f(inode), 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, ...@@ -287,7 +287,7 @@ static int coda_symlink(struct inode *dir_inode, struct dentry *de,
int symlen; int symlen;
int error; int error;
if (coda_isroot(dir_inode) && coda_iscontrol(name, len)) if (is_root_inode(dir_inode) && coda_iscontrol(name, len))
return -EPERM; return -EPERM;
symlen = strlen(symname); symlen = strlen(symname);
...@@ -507,7 +507,7 @@ static int coda_dentry_revalidate(struct dentry *de, unsigned int flags) ...@@ -507,7 +507,7 @@ static int coda_dentry_revalidate(struct dentry *de, unsigned int flags)
return -ECHILD; return -ECHILD;
inode = de->d_inode; inode = de->d_inode;
if (!inode || coda_isroot(inode)) if (!inode || is_root_inode(inode))
goto out; goto out;
if (is_bad_inode(inode)) if (is_bad_inode(inode))
goto bad; goto bad;
......
...@@ -198,8 +198,8 @@ ncp_single_volume(struct ncp_server *server) ...@@ -198,8 +198,8 @@ ncp_single_volume(struct ncp_server *server)
static inline int ncp_is_server_root(struct inode *inode) static inline int ncp_is_server_root(struct inode *inode)
{ {
return (!ncp_single_volume(NCP_SERVER(inode)) && return !ncp_single_volume(NCP_SERVER(inode)) &&
inode == inode->i_sb->s_root->d_inode); is_root_inode(inode);
} }
......
...@@ -2789,6 +2789,11 @@ static inline void inode_has_no_xattr(struct inode *inode) ...@@ -2789,6 +2789,11 @@ static inline void inode_has_no_xattr(struct inode *inode)
inode->i_flags |= S_NOSEC; 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, static inline bool dir_emit(struct dir_context *ctx,
const char *name, int namelen, const char *name, int namelen,
u64 ino, unsigned type) u64 ino, unsigned type)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册