linux-next: manual merge of the vfs tree with the v9fs tree

From: Stephen Rothwell
Date: Thu Jan 05 2012 - 21:47:32 EST


Hi Al,

Today's linux-next merge of the vfs tree got conflicts in
fs/9p/vfs_inode.c and fs/9p/vfs_inode_dotl.c between commit 5d3851530d6d
("9p: Reduce object size with CONFIG_NET_9P_DEBUG") from the v9fs tree
and commits c2837de73e80 ("9p: don't bother with unixmode2p9mode() for
link() and symlink()") and 3eda0de677b5 ("9p: propagate umode_t") from
the vfs tree.

I fixed it up (see below) and can carry the fix as necessary.
--
Cheers,
Stephen Rothwell sfr@xxxxxxxxxxxxxxxx

diff --cc fs/9p/vfs_inode.c
index c8fe480,e0f20de..0000000
--- a/fs/9p/vfs_inode.c
+++ b/fs/9p/vfs_inode.c
@@@ -127,14 -94,14 +122,14 @@@ static int p9mode2perm(struct v9fs_sess
* @rdev: major number, minor number in case of device files.
*
*/
- static int p9mode2unixmode(struct v9fs_session_info *v9ses,
- struct p9_wstat *stat, dev_t *rdev)
+ static umode_t p9mode2unixmode(struct v9fs_session_info *v9ses,
+ struct p9_wstat *stat, dev_t *rdev)
{
int res;
- int mode = stat->mode;
+ u32 mode = stat->mode;

- res = mode & S_IALLUGO;
*rdev = 0;
+ res = p9mode2perm(v9ses, stat);

if ((mode & P9_DMDIR) == P9_DMDIR)
res |= S_IFDIR;
@@@ -352,8 -329,8 +346,8 @@@ int v9fs_init_inode(struct v9fs_session

break;
default:
- p9_debug(P9_DEBUG_ERROR, "BAD mode 0x%x S_IFMT 0x%x\n",
- P9_DPRINTK(P9_DEBUG_ERROR, "BAD mode 0x%hx S_IFMT 0x%x\n",
- mode, mode & S_IFMT);
++ p9_debug(P9_DEBUG_ERROR, "BAD mode 0x%hx S_IFMT 0x%x\n",
+ mode, mode & S_IFMT);
err = -EINVAL;
goto error;
}
@@@ -375,7 -352,7 +369,7 @@@ struct inode *v9fs_get_inode(struct sup
struct inode *inode;
struct v9fs_session_info *v9ses = sb->s_fs_info;

- p9_debug(P9_DEBUG_VFS, "super block: %p mode: %o\n", sb, mode);
- P9_DPRINTK(P9_DEBUG_VFS, "super block: %p mode: %ho\n", sb, mode);
++ p9_debug(P9_DEBUG_VFS, "super block: %p mode: %ho\n", sb, mode);

inode = new_inode(sb);
if (!inode) {
@@@ -1362,10 -1333,10 +1355,10 @@@ static int v9fs_vfs_mkspecial(struct in
static int
v9fs_vfs_symlink(struct inode *dir, struct dentry *dentry, const char *symname)
{
- P9_DPRINTK(P9_DEBUG_VFS, " %lu,%s,%s\n", dir->i_ino,
- dentry->d_name.name, symname);
+ p9_debug(P9_DEBUG_VFS, " %lu,%s,%s\n",
+ dir->i_ino, dentry->d_name.name, symname);

- return v9fs_vfs_mkspecial(dir, dentry, S_IFLNK, symname);
+ return v9fs_vfs_mkspecial(dir, dentry, P9_DMSYMLINK, symname);
}

/**
@@@ -1419,14 -1391,16 +1412,16 @@@ clunk_fid
*/

static int
- v9fs_vfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t rdev)
+ v9fs_vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t rdev)
{
+ struct v9fs_session_info *v9ses = v9fs_inode2v9ses(dir);
int retval;
char *name;
+ u32 perm;

- p9_debug(P9_DEBUG_VFS, " %lu,%s mode: %x MAJOR: %u MINOR: %u\n",
- P9_DPRINTK(P9_DEBUG_VFS,
- " %lu,%s mode: %hx MAJOR: %u MINOR: %u\n", dir->i_ino,
- dentry->d_name.name, mode, MAJOR(rdev), MINOR(rdev));
++ p9_debug(P9_DEBUG_VFS, " %lu,%s mode: %hx MAJOR: %u MINOR: %u\n",
+ dir->i_ino, dentry->d_name.name, mode,
+ MAJOR(rdev), MINOR(rdev));

if (!new_valid_dev(rdev))
return -EINVAL;
diff --cc fs/9p/vfs_inode_dotl.c
index 73488fb,8ef152a..0000000
--- a/fs/9p/vfs_inode_dotl.c
+++ b/fs/9p/vfs_inode_dotl.c
@@@ -283,8 -283,8 +283,8 @@@ v9fs_vfs_create_dotl(struct inode *dir
}

name = (char *) dentry->d_name.name;
- p9_debug(P9_DEBUG_VFS, "name:%s flags:0x%x mode:0x%x\n",
- name, flags, omode);
- P9_DPRINTK(P9_DEBUG_VFS, "v9fs_vfs_create_dotl: name:%s flags:0x%x "
++ p9_debug(P9_DEBUG_VFS, "v9fs_vfs_create_dotl: name:%s flags:0x%x "
+ "mode:0x%hx\n", name, flags, omode);

dfid = v9fs_fid_lookup(dentry->d_parent);
if (IS_ERR(dfid)) {
@@@ -810,9 -813,9 +810,9 @@@ v9fs_vfs_mknod_dotl(struct inode *dir,
struct dentry *dir_dentry;
struct posix_acl *dacl = NULL, *pacl = NULL;

- p9_debug(P9_DEBUG_VFS, " %lu,%s mode: %x MAJOR: %u MINOR: %u\n",
- P9_DPRINTK(P9_DEBUG_VFS,
- " %lu,%s mode: %hx MAJOR: %u MINOR: %u\n", dir->i_ino,
- dentry->d_name.name, omode, MAJOR(rdev), MINOR(rdev));
++ p9_debug(P9_DEBUG_VFS, " %lu,%s mode: %hx MAJOR: %u MINOR: %u\n",
+ dir->i_ino, dentry->d_name.name, omode,
+ MAJOR(rdev), MINOR(rdev));

if (!new_valid_dev(rdev))
return -EINVAL;

Attachment: pgp00000.pgp
Description: PGP signature