ovl: obsolete "check_copy_up" module option

This was provided for debugging the ro/rw inconsistecy.  The inconsitency
is now gone so this option is obsolete.

Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
This commit is contained in:
Miklos Szeredi 2018-07-18 15:44:44 +02:00
parent fb16043b46
commit 670c23248e

View File

@ -25,35 +25,20 @@
#define OVL_COPY_UP_CHUNK_SIZE (1 << 20) #define OVL_COPY_UP_CHUNK_SIZE (1 << 20)
static bool __read_mostly ovl_check_copy_up; static int ovl_ccup_set(const char *buf, const struct kernel_param *param)
module_param_named(check_copy_up, ovl_check_copy_up, bool,
S_IWUSR | S_IRUGO);
MODULE_PARM_DESC(ovl_check_copy_up,
"Warn on copy-up when causing process also has a R/O fd open");
static int ovl_check_fd(const void *data, struct file *f, unsigned int fd)
{ {
const struct dentry *dentry = data; pr_warn("overlayfs: \"check_copy_up\" module option is obsolete\n");
if (file_inode(f) == d_inode(dentry))
pr_warn_ratelimited("overlayfs: Warning: Copying up %pD, but open R/O on fd %u which will cease to be coherent [pid=%d %s]\n",
f, fd, current->pid, current->comm);
return 0; return 0;
} }
/* static int ovl_ccup_get(char *buf, const struct kernel_param *param)
* Check the fds open by this process and warn if something like the following
* scenario is about to occur:
*
* fd1 = open("foo", O_RDONLY);
* fd2 = open("foo", O_RDWR);
*/
static void ovl_do_check_copy_up(struct dentry *dentry)
{ {
if (ovl_check_copy_up) return sprintf(buf, "N\n");
iterate_fd(current->files, 0, ovl_check_fd, dentry);
} }
module_param_call(check_copy_up, ovl_ccup_set, ovl_ccup_get, NULL, 0644);
MODULE_PARM_DESC(ovl_check_copy_up, "Obsolete; does nothing");
int ovl_copy_xattr(struct dentry *old, struct dentry *new) int ovl_copy_xattr(struct dentry *old, struct dentry *new)
{ {
ssize_t list_size, size, value_size = 0; ssize_t list_size, size, value_size = 0;
@ -719,7 +704,6 @@ static int ovl_copy_up_one(struct dentry *parent, struct dentry *dentry,
if (IS_ERR(ctx.link)) if (IS_ERR(ctx.link))
return PTR_ERR(ctx.link); return PTR_ERR(ctx.link);
} }
ovl_do_check_copy_up(ctx.lowerpath.dentry);
err = ovl_copy_up_start(dentry); err = ovl_copy_up_start(dentry);
/* err < 0: interrupted, err > 0: raced with another copy-up */ /* err < 0: interrupted, err > 0: raced with another copy-up */