Commit 80e5d1ff authored by Al Viro's avatar Al Viro

useful constants: struct qstr for ".."

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent d692d397
...@@ -84,6 +84,8 @@ const struct qstr empty_name = QSTR_INIT("", 0); ...@@ -84,6 +84,8 @@ const struct qstr empty_name = QSTR_INIT("", 0);
EXPORT_SYMBOL(empty_name); EXPORT_SYMBOL(empty_name);
const struct qstr slash_name = QSTR_INIT("/", 1); const struct qstr slash_name = QSTR_INIT("/", 1);
EXPORT_SYMBOL(slash_name); EXPORT_SYMBOL(slash_name);
const struct qstr dotdot_name = QSTR_INIT("..", 2);
EXPORT_SYMBOL(dotdot_name);
/* /*
* This is the single most critical data structure when it comes * This is the single most critical data structure when it comes
......
...@@ -81,11 +81,10 @@ static struct dentry *ext2_lookup(struct inode * dir, struct dentry *dentry, uns ...@@ -81,11 +81,10 @@ static struct dentry *ext2_lookup(struct inode * dir, struct dentry *dentry, uns
struct dentry *ext2_get_parent(struct dentry *child) struct dentry *ext2_get_parent(struct dentry *child)
{ {
struct qstr dotdot = QSTR_INIT("..", 2);
ino_t ino; ino_t ino;
int res; int res;
res = ext2_inode_by_name(d_inode(child), &dotdot, &ino); res = ext2_inode_by_name(d_inode(child), &dotdot_name, &ino);
if (res) if (res)
return ERR_PTR(res); return ERR_PTR(res);
......
...@@ -1739,11 +1739,10 @@ static struct dentry *ext4_lookup(struct inode *dir, struct dentry *dentry, unsi ...@@ -1739,11 +1739,10 @@ static struct dentry *ext4_lookup(struct inode *dir, struct dentry *dentry, unsi
struct dentry *ext4_get_parent(struct dentry *child) struct dentry *ext4_get_parent(struct dentry *child)
{ {
__u32 ino; __u32 ino;
static const struct qstr dotdot = QSTR_INIT("..", 2);
struct ext4_dir_entry_2 * de; struct ext4_dir_entry_2 * de;
struct buffer_head *bh; struct buffer_head *bh;
bh = ext4_find_entry(d_inode(child), &dotdot, &de, NULL); bh = ext4_find_entry(d_inode(child), &dotdot_name, &de, NULL);
if (IS_ERR(bh)) if (IS_ERR(bh))
return ERR_CAST(bh); return ERR_CAST(bh);
if (!bh) if (!bh)
......
...@@ -449,9 +449,7 @@ struct f2fs_dir_entry *f2fs_find_entry(struct inode *dir, ...@@ -449,9 +449,7 @@ struct f2fs_dir_entry *f2fs_find_entry(struct inode *dir,
struct f2fs_dir_entry *f2fs_parent_dir(struct inode *dir, struct page **p) struct f2fs_dir_entry *f2fs_parent_dir(struct inode *dir, struct page **p)
{ {
struct qstr dotdot = QSTR_INIT("..", 2); return f2fs_find_entry(dir, &dotdot_name, p);
return f2fs_find_entry(dir, &dotdot, p);
} }
ino_t f2fs_inode_by_name(struct inode *dir, const struct qstr *qstr, ino_t f2fs_inode_by_name(struct inode *dir, const struct qstr *qstr,
......
...@@ -416,9 +416,8 @@ static int f2fs_link(struct dentry *old_dentry, struct inode *dir, ...@@ -416,9 +416,8 @@ static int f2fs_link(struct dentry *old_dentry, struct inode *dir,
struct dentry *f2fs_get_parent(struct dentry *child) struct dentry *f2fs_get_parent(struct dentry *child)
{ {
struct qstr dotdot = QSTR_INIT("..", 2);
struct page *page; struct page *page;
unsigned long ino = f2fs_inode_by_name(d_inode(child), &dotdot, &page); unsigned long ino = f2fs_inode_by_name(d_inode(child), &dotdot_name, &page);
if (!ino) { if (!ino) {
if (IS_ERR(page)) if (IS_ERR(page))
return ERR_CAST(page); return ERR_CAST(page);
......
...@@ -872,14 +872,13 @@ static struct dentry *fuse_get_parent(struct dentry *child) ...@@ -872,14 +872,13 @@ static struct dentry *fuse_get_parent(struct dentry *child)
struct inode *inode; struct inode *inode;
struct dentry *parent; struct dentry *parent;
struct fuse_entry_out outarg; struct fuse_entry_out outarg;
const struct qstr name = QSTR_INIT("..", 2);
int err; int err;
if (!fc->export_support) if (!fc->export_support)
return ERR_PTR(-ESTALE); return ERR_PTR(-ESTALE);
err = fuse_lookup_name(child_inode->i_sb, get_node_id(child_inode), err = fuse_lookup_name(child_inode->i_sb, get_node_id(child_inode),
&name, &outarg, &inode); &dotdot_name, &outarg, &inode);
if (err) { if (err) {
if (err == -ENOENT) if (err == -ENOENT)
return ERR_PTR(-ESTALE); return ERR_PTR(-ESTALE);
......
...@@ -440,10 +440,9 @@ static struct dentry *nilfs_get_parent(struct dentry *child) ...@@ -440,10 +440,9 @@ static struct dentry *nilfs_get_parent(struct dentry *child)
{ {
unsigned long ino; unsigned long ino;
struct inode *inode; struct inode *inode;
struct qstr dotdot = QSTR_INIT("..", 2);
struct nilfs_root *root; struct nilfs_root *root;
ino = nilfs_inode_by_name(d_inode(child), &dotdot); ino = nilfs_inode_by_name(d_inode(child), &dotdot_name);
if (!ino) if (!ino)
return ERR_PTR(-ENOENT); return ERR_PTR(-ENOENT);
......
...@@ -1215,11 +1215,10 @@ static struct dentry *udf_get_parent(struct dentry *child) ...@@ -1215,11 +1215,10 @@ static struct dentry *udf_get_parent(struct dentry *child)
{ {
struct kernel_lb_addr tloc; struct kernel_lb_addr tloc;
struct inode *inode = NULL; struct inode *inode = NULL;
struct qstr dotdot = QSTR_INIT("..", 2);
struct fileIdentDesc cfi; struct fileIdentDesc cfi;
struct udf_fileident_bh fibh; struct udf_fileident_bh fibh;
if (!udf_find_entry(d_inode(child), &dotdot, &fibh, &cfi)) if (!udf_find_entry(d_inode(child), &dotdot_name, &fibh, &cfi))
return ERR_PTR(-EACCES); return ERR_PTR(-EACCES);
if (fibh.sbh != fibh.ebh) if (fibh.sbh != fibh.ebh)
......
...@@ -128,10 +128,9 @@ static struct dentry *ufs_fh_to_parent(struct super_block *sb, struct fid *fid, ...@@ -128,10 +128,9 @@ static struct dentry *ufs_fh_to_parent(struct super_block *sb, struct fid *fid,
static struct dentry *ufs_get_parent(struct dentry *child) static struct dentry *ufs_get_parent(struct dentry *child)
{ {
struct qstr dot_dot = QSTR_INIT("..", 2);
ino_t ino; ino_t ino;
ino = ufs_inode_by_name(d_inode(child), &dot_dot); ino = ufs_inode_by_name(d_inode(child), &dotdot_name);
if (!ino) if (!ino)
return ERR_PTR(-ENOENT); return ERR_PTR(-ENOENT);
return d_obtain_alias(ufs_iget(child->d_sb, ino)); return d_obtain_alias(ufs_iget(child->d_sb, ino));
......
...@@ -59,6 +59,7 @@ struct qstr { ...@@ -59,6 +59,7 @@ struct qstr {
extern const struct qstr empty_name; extern const struct qstr empty_name;
extern const struct qstr slash_name; extern const struct qstr slash_name;
extern const struct qstr dotdot_name;
struct dentry_stat_t { struct dentry_stat_t {
long nr_dentry; long nr_dentry;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment