diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-03-03 16:23:02 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-03-03 16:23:03 -0500 |
commit | 56a79b7b021bf1b08334e63c2c14b280e2dbf47a (patch) | |
tree | 0419233e6194f4f12073c9284852885aa8984bec /fs/9p/vfs_inode_dotl.c | |
parent | 1c82315a12144cde732636e259d39e3ee81b3c5b (diff) | |
parent | dcf787f39162ce32ca325b3e784aba2d2444619a (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull more VFS bits from Al Viro:
"Unfortunately, it looks like xattr series will have to wait until the
next cycle ;-/
This pile contains 9p cleanups and fixes (races in v9fs_fid_add()
etc), fixup for nommu breakage in shmem.c, several cleanups and a bit
more file_inode() work"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
constify path_get/path_put and fs_struct.c stuff
fix nommu breakage in shmem.c
cache the value of file_inode() in struct file
9p: if v9fs_fid_lookup() gets to asking server, it'd better have hashed dentry
9p: make sure ->lookup() adds fid to the right dentry
9p: untangle ->lookup() a bit
9p: double iput() in ->lookup() if d_materialise_unique() fails
9p: v9fs_fid_add() can't fail now
v9fs: get rid of v9fs_dentry
9p: turn fid->dlist into hlist
9p: don't bother with private lock in ->d_fsdata; dentry->d_lock will do just fine
more file_inode() open-coded instances
selinux: opened file can't have NULL or negative ->f_path.dentry
(In the meantime, the hlist traversal macros have changed, so this
required a semantic conflict fixup for the newly hlistified fid->dlist)
Diffstat (limited to 'fs/9p/vfs_inode_dotl.c')
-rw-r--r-- | fs/9p/vfs_inode_dotl.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/fs/9p/vfs_inode_dotl.c b/fs/9p/vfs_inode_dotl.c index 61e4fa70a6fa..53687bbf2296 100644 --- a/fs/9p/vfs_inode_dotl.c +++ b/fs/9p/vfs_inode_dotl.c | |||
@@ -333,9 +333,7 @@ v9fs_vfs_atomic_open_dotl(struct inode *dir, struct dentry *dentry, | |||
333 | /* Now set the ACL based on the default value */ | 333 | /* Now set the ACL based on the default value */ |
334 | v9fs_set_create_acl(inode, fid, dacl, pacl); | 334 | v9fs_set_create_acl(inode, fid, dacl, pacl); |
335 | 335 | ||
336 | err = v9fs_fid_add(dentry, fid); | 336 | v9fs_fid_add(dentry, fid); |
337 | if (err < 0) | ||
338 | goto error; | ||
339 | d_instantiate(dentry, inode); | 337 | d_instantiate(dentry, inode); |
340 | 338 | ||
341 | v9inode = V9FS_I(inode); | 339 | v9inode = V9FS_I(inode); |
@@ -453,12 +451,11 @@ static int v9fs_vfs_mkdir_dotl(struct inode *dir, | |||
453 | err); | 451 | err); |
454 | goto error; | 452 | goto error; |
455 | } | 453 | } |
456 | err = v9fs_fid_add(dentry, fid); | 454 | v9fs_fid_add(dentry, fid); |
457 | if (err < 0) | ||
458 | goto error; | ||
459 | v9fs_set_create_acl(inode, fid, dacl, pacl); | 455 | v9fs_set_create_acl(inode, fid, dacl, pacl); |
460 | d_instantiate(dentry, inode); | 456 | d_instantiate(dentry, inode); |
461 | fid = NULL; | 457 | fid = NULL; |
458 | err = 0; | ||
462 | } else { | 459 | } else { |
463 | /* | 460 | /* |
464 | * Not in cached mode. No need to populate | 461 | * Not in cached mode. No need to populate |
@@ -747,11 +744,10 @@ v9fs_vfs_symlink_dotl(struct inode *dir, struct dentry *dentry, | |||
747 | err); | 744 | err); |
748 | goto error; | 745 | goto error; |
749 | } | 746 | } |
750 | err = v9fs_fid_add(dentry, fid); | 747 | v9fs_fid_add(dentry, fid); |
751 | if (err < 0) | ||
752 | goto error; | ||
753 | d_instantiate(dentry, inode); | 748 | d_instantiate(dentry, inode); |
754 | fid = NULL; | 749 | fid = NULL; |
750 | err = 0; | ||
755 | } else { | 751 | } else { |
756 | /* Not in cached mode. No need to populate inode with stat */ | 752 | /* Not in cached mode. No need to populate inode with stat */ |
757 | inode = v9fs_get_inode(dir->i_sb, S_IFLNK, 0); | 753 | inode = v9fs_get_inode(dir->i_sb, S_IFLNK, 0); |
@@ -900,11 +896,10 @@ v9fs_vfs_mknod_dotl(struct inode *dir, struct dentry *dentry, umode_t omode, | |||
900 | goto error; | 896 | goto error; |
901 | } | 897 | } |
902 | v9fs_set_create_acl(inode, fid, dacl, pacl); | 898 | v9fs_set_create_acl(inode, fid, dacl, pacl); |
903 | err = v9fs_fid_add(dentry, fid); | 899 | v9fs_fid_add(dentry, fid); |
904 | if (err < 0) | ||
905 | goto error; | ||
906 | d_instantiate(dentry, inode); | 900 | d_instantiate(dentry, inode); |
907 | fid = NULL; | 901 | fid = NULL; |
902 | err = 0; | ||
908 | } else { | 903 | } else { |
909 | /* | 904 | /* |
910 | * Not in cached mode. No need to populate inode with stat. | 905 | * Not in cached mode. No need to populate inode with stat. |