aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-07-19 18:25:00 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-07-29 13:24:15 -0400
commita8104a9fcdeb82e22d7acd55fca20746581067d3 (patch)
tree3036dae685f9b12a878dd02e439f0050114d7745 /net
parent8e4bfca1d1f0de62301dd223675717e7a5f63a27 (diff)
pull mnt_want_write()/mnt_drop_write() into kern_path_create()/done_path_create() resp.
One side effect - attempt to create a cross-device link on a read-only fs fails with EROFS instead of EXDEV now. Makes more sense, POSIX allows, etc. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'net')
-rw-r--r--net/unix/af_unix.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
index e8239540683a..88ab72820b9f 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -876,15 +876,11 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
876 */ 876 */
877 mode = S_IFSOCK | 877 mode = S_IFSOCK |
878 (SOCK_INODE(sock)->i_mode & ~current_umask()); 878 (SOCK_INODE(sock)->i_mode & ~current_umask());
879 err = mnt_want_write(path.mnt);
880 if (err)
881 goto out_mknod_dput;
882 err = security_path_mknod(&path, dentry, mode, 0); 879 err = security_path_mknod(&path, dentry, mode, 0);
883 if (err) 880 if (err)
884 goto out_mknod_drop_write; 881 goto out_mknod_drop_write;
885 err = vfs_mknod(path.dentry->d_inode, dentry, mode, 0); 882 err = vfs_mknod(path.dentry->d_inode, dentry, mode, 0);
886out_mknod_drop_write: 883out_mknod_drop_write:
887 mnt_drop_write(path.mnt);
888 if (err) 884 if (err)
889 goto out_mknod_dput; 885 goto out_mknod_dput;
890 mntget(path.mnt); 886 mntget(path.mnt);