The first three patches here fix actual bugs. I think the last two will reduce the chance for any future bugs to creep in. RFC for now.
-- This is a bug fix for the r/o bind mount patch set. We need to ensure taking a mnt write on the mnt referenced by any new struct file. --- lxc-dave/fs/open.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff -puN fs/open.c~get-write-in-__dentry_open fs/open.c --- lxc/fs/open.c~get-write-in-__dentry_open 2007-09-27 11:51:31.000000000 -0700 +++ lxc-dave/fs/open.c 2007-09-27 11:51:31.000000000 -0700 @@ -778,9 +778,15 @@ static struct file *__dentry_open(struct FMODE_PREAD | FMODE_PWRITE; inode = dentry->d_inode; if (f->f_mode & FMODE_WRITE) { - error = get_write_access(inode); + error = mnt_want_write(mnt); if (error) goto cleanup_file; + + error = get_write_access(inode); + if (error) { + mnt_drop_write(mnt); + goto cleanup_file; + } } f->f_mapping = inode->i_mapping; @@ -820,8 +826,10 @@ static struct file *__dentry_open(struct cleanup_all: fops_put(f->f_op); - if (f->f_mode & FMODE_WRITE) + if (f->f_mode & FMODE_WRITE) { put_write_access(inode); + mnt_drop_write(mnt); + } file_kill(f); f->f_path.dentry = NULL; f->f_path.mnt = NULL; _ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/