Merge uncontroversial parts of branch 'readlink' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs
Pull partial readlink cleanups from Miklos Szeredi. This is the uncontroversial part of the readlink cleanup patch-set that simplifies the default readlink handling. Miklos and Al are still discussing the rest of the series. * git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs: vfs: make generic_readlink() static vfs: remove ".readlink = generic_readlink" assignments vfs: default to generic_readlink() vfs: replace calling i_op->readlink with vfs_readlink() proc/self: use generic_readlink ecryptfs: use vfs_get_link() bad_inode: add missing i_op initializers
This commit is contained in:
@@ -425,7 +425,6 @@ static const char *proc_get_link(struct dentry *dentry,
|
||||
}
|
||||
|
||||
const struct inode_operations proc_link_inode_operations = {
|
||||
.readlink = generic_readlink,
|
||||
.get_link = proc_get_link,
|
||||
};
|
||||
|
||||
|
@@ -6,18 +6,6 @@
|
||||
/*
|
||||
* /proc/self:
|
||||
*/
|
||||
static int proc_self_readlink(struct dentry *dentry, char __user *buffer,
|
||||
int buflen)
|
||||
{
|
||||
struct pid_namespace *ns = dentry->d_sb->s_fs_info;
|
||||
pid_t tgid = task_tgid_nr_ns(current, ns);
|
||||
char tmp[PROC_NUMBUF];
|
||||
if (!tgid)
|
||||
return -ENOENT;
|
||||
sprintf(tmp, "%d", tgid);
|
||||
return readlink_copy(buffer, buflen, tmp);
|
||||
}
|
||||
|
||||
static const char *proc_self_get_link(struct dentry *dentry,
|
||||
struct inode *inode,
|
||||
struct delayed_call *done)
|
||||
@@ -38,7 +26,6 @@ static const char *proc_self_get_link(struct dentry *dentry,
|
||||
}
|
||||
|
||||
static const struct inode_operations proc_self_inode_operations = {
|
||||
.readlink = proc_self_readlink,
|
||||
.get_link = proc_self_get_link,
|
||||
};
|
||||
|
||||
|
@@ -6,19 +6,6 @@
|
||||
/*
|
||||
* /proc/thread_self:
|
||||
*/
|
||||
static int proc_thread_self_readlink(struct dentry *dentry, char __user *buffer,
|
||||
int buflen)
|
||||
{
|
||||
struct pid_namespace *ns = dentry->d_sb->s_fs_info;
|
||||
pid_t tgid = task_tgid_nr_ns(current, ns);
|
||||
pid_t pid = task_pid_nr_ns(current, ns);
|
||||
char tmp[PROC_NUMBUF + 6 + PROC_NUMBUF];
|
||||
if (!pid)
|
||||
return -ENOENT;
|
||||
sprintf(tmp, "%d/task/%d", tgid, pid);
|
||||
return readlink_copy(buffer, buflen, tmp);
|
||||
}
|
||||
|
||||
static const char *proc_thread_self_get_link(struct dentry *dentry,
|
||||
struct inode *inode,
|
||||
struct delayed_call *done)
|
||||
@@ -40,7 +27,6 @@ static const char *proc_thread_self_get_link(struct dentry *dentry,
|
||||
}
|
||||
|
||||
static const struct inode_operations proc_thread_self_inode_operations = {
|
||||
.readlink = proc_thread_self_readlink,
|
||||
.get_link = proc_thread_self_get_link,
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user