Merge branch 'work.const-qstr' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull qstr constification updates from Al Viro: "Fairly self-contained bunch - surprising lot of places passes struct qstr * as an argument when const struct qstr * would suffice; it complicates analysis for no good reason. I'd prefer to feed that separately from the assorted fixes (those are in #for-linus and with somewhat trickier topology)" * 'work.const-qstr' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: qstr: constify instances in adfs qstr: constify instances in lustre qstr: constify instances in f2fs qstr: constify instances in ext2 qstr: constify instances in vfat qstr: constify instances in procfs qstr: constify instances in fuse qstr constify instances in fs/dcache.c qstr: constify instances in nfs qstr: constify instances in ocfs2 qstr: constify instances in autofs4 qstr: constify instances in hfs qstr: constify instances in hfsplus qstr: constify instances in logfs qstr: constify dentry_init_security
这个提交包含在:
@@ -146,7 +146,7 @@ static void fuse_invalidate_entry(struct dentry *entry)
|
||||
}
|
||||
|
||||
static void fuse_lookup_init(struct fuse_conn *fc, struct fuse_args *args,
|
||||
u64 nodeid, struct qstr *name,
|
||||
u64 nodeid, const struct qstr *name,
|
||||
struct fuse_entry_out *outarg)
|
||||
{
|
||||
memset(outarg, 0, sizeof(struct fuse_entry_out));
|
||||
@@ -282,7 +282,7 @@ int fuse_valid_type(int m)
|
||||
S_ISBLK(m) || S_ISFIFO(m) || S_ISSOCK(m);
|
||||
}
|
||||
|
||||
int fuse_lookup_name(struct super_block *sb, u64 nodeid, struct qstr *name,
|
||||
int fuse_lookup_name(struct super_block *sb, u64 nodeid, const struct qstr *name,
|
||||
struct fuse_entry_out *outarg, struct inode **inode)
|
||||
{
|
||||
struct fuse_conn *fc = get_fuse_conn_super(sb);
|
||||
|
@@ -704,7 +704,7 @@ struct inode *fuse_iget(struct super_block *sb, u64 nodeid,
|
||||
int generation, struct fuse_attr *attr,
|
||||
u64 attr_valid, u64 attr_version);
|
||||
|
||||
int fuse_lookup_name(struct super_block *sb, u64 nodeid, struct qstr *name,
|
||||
int fuse_lookup_name(struct super_block *sb, u64 nodeid, const struct qstr *name,
|
||||
struct fuse_entry_out *outarg, struct inode **inode);
|
||||
|
||||
/**
|
||||
|
@@ -673,13 +673,11 @@ static struct dentry *fuse_get_dentry(struct super_block *sb,
|
||||
inode = ilookup5(sb, handle->nodeid, fuse_inode_eq, &handle->nodeid);
|
||||
if (!inode) {
|
||||
struct fuse_entry_out outarg;
|
||||
struct qstr name;
|
||||
const struct qstr name = QSTR_INIT(".", 1);
|
||||
|
||||
if (!fc->export_support)
|
||||
goto out_err;
|
||||
|
||||
name.len = 1;
|
||||
name.name = ".";
|
||||
err = fuse_lookup_name(sb, handle->nodeid, &name, &outarg,
|
||||
&inode);
|
||||
if (err && err != -ENOENT)
|
||||
@@ -775,14 +773,12 @@ static struct dentry *fuse_get_parent(struct dentry *child)
|
||||
struct inode *inode;
|
||||
struct dentry *parent;
|
||||
struct fuse_entry_out outarg;
|
||||
struct qstr name;
|
||||
const struct qstr name = QSTR_INIT("..", 2);
|
||||
int err;
|
||||
|
||||
if (!fc->export_support)
|
||||
return ERR_PTR(-ESTALE);
|
||||
|
||||
name.len = 2;
|
||||
name.name = "..";
|
||||
err = fuse_lookup_name(child_inode->i_sb, get_node_id(child_inode),
|
||||
&name, &outarg, &inode);
|
||||
if (err) {
|
||||
|
在新工单中引用
屏蔽一个用户