
Originally from: Herbert Poetzl <herbert@13thfloor.at>

We're going to shortly be using inode_is_readonly() in chown_common()
to replace IS_RDONLY().  inode_is_readonly() needs a vfsmount, so
make sure that we have one available.

Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
---

 fs/nfs/dir.c       |    0 
 lxc-dave/fs/open.c |   11 ++++++-----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff -puN fs/open.c~D3-pass-vfsmnt-into-chown_common fs/open.c
--- lxc/fs/open.c~D3-pass-vfsmnt-into-chown_common	2006-05-31 12:48:51.000000000 -0700
+++ lxc-dave/fs/open.c	2006-05-31 12:48:51.000000000 -0700
@@ -695,7 +695,8 @@ asmlinkage long sys_chmod(const char __u
 	return sys_fchmodat(AT_FDCWD, filename, mode);
 }
 
-static int chown_common(struct dentry * dentry, uid_t user, gid_t group)
+static int chown_common(struct dentry * dentry, struct vfsmount *mnt,
+			uid_t user, gid_t group)
 {
 	struct inode * inode;
 	int error;
@@ -737,7 +738,7 @@ asmlinkage long sys_chown(const char __u
 
 	error = user_path_walk(filename, &nd);
 	if (!error) {
-		error = chown_common(nd.dentry, user, group);
+		error = chown_common(nd.dentry, nd.mnt, user, group);
 		path_release(&nd);
 	}
 	return error;
@@ -756,7 +757,7 @@ asmlinkage long sys_fchownat(int dfd, co
 	follow = (flag & AT_SYMLINK_NOFOLLOW) ? 0 : LOOKUP_FOLLOW;
 	error = __user_walk_fd(dfd, filename, follow, &nd);
 	if (!error) {
-		error = chown_common(nd.dentry, user, group);
+		error = chown_common(nd.dentry, nd.mnt, user, group);
 		path_release(&nd);
 	}
 out:
@@ -770,7 +771,7 @@ asmlinkage long sys_lchown(const char __
 
 	error = user_path_walk_link(filename, &nd);
 	if (!error) {
-		error = chown_common(nd.dentry, user, group);
+		error = chown_common(nd.dentry, nd.mnt, user, group);
 		path_release(&nd);
 	}
 	return error;
@@ -787,7 +788,7 @@ asmlinkage long sys_fchown(unsigned int 
 		struct dentry * dentry;
 		dentry = file->f_dentry;
 		audit_inode(NULL, dentry->d_inode, 0);
-		error = chown_common(dentry, user, group);
+		error = chown_common(dentry, file->f_vfsmnt, user, group);
 		fput(file);
 	}
 	return error;
diff -puN fs/nfs/dir.c~D3-pass-vfsmnt-into-chown_common fs/nfs/dir.c
_
