diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-13 13:27:28 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-13 13:27:28 -0500 |
commit | b2034d474b7e1e8578bd5c2977024b51693269d9 (patch) | |
tree | e43969bf7c2ba89884c2580f56978826f1014520 /net | |
parent | 27d189c02ba25851973c8582e419c0bded9f7e5b (diff) | |
parent | 924241575a85249b9d410e38f5b2fcad9035e45c (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (41 commits)
fs: add documentation on fallocate hole punching
Gfs2: fail if we try to use hole punch
Btrfs: fail if we try to use hole punch
Ext4: fail if we try to use hole punch
Ocfs2: handle hole punching via fallocate properly
XFS: handle hole punching via fallocate properly
fs: add hole punching to fallocate
vfs: pass struct file to do_truncate on O_TRUNC opens (try #2)
fix signedness mess in rw_verify_area() on 64bit architectures
fs: fix kernel-doc for dcache::prepend_path
fs: fix kernel-doc for dcache::d_validate
sanitize ecryptfs ->mount()
switch afs
move internal-only parts of ncpfs headers to fs/ncpfs
switch ncpfs
switch 9p
pass default dentry_operations to mount_pseudo()
switch hostfs
switch affs
switch configfs
...
Diffstat (limited to 'net')
-rw-r--r-- | net/socket.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/net/socket.c b/net/socket.c index ccc576a6a508..ac2219f90d5d 100644 --- a/net/socket.c +++ b/net/socket.c | |||
@@ -306,20 +306,6 @@ static const struct super_operations sockfs_ops = { | |||
306 | .statfs = simple_statfs, | 306 | .statfs = simple_statfs, |
307 | }; | 307 | }; |
308 | 308 | ||
309 | static struct dentry *sockfs_mount(struct file_system_type *fs_type, | ||
310 | int flags, const char *dev_name, void *data) | ||
311 | { | ||
312 | return mount_pseudo(fs_type, "socket:", &sockfs_ops, SOCKFS_MAGIC); | ||
313 | } | ||
314 | |||
315 | static struct vfsmount *sock_mnt __read_mostly; | ||
316 | |||
317 | static struct file_system_type sock_fs_type = { | ||
318 | .name = "sockfs", | ||
319 | .mount = sockfs_mount, | ||
320 | .kill_sb = kill_anon_super, | ||
321 | }; | ||
322 | |||
323 | /* | 309 | /* |
324 | * sockfs_dname() is called from d_path(). | 310 | * sockfs_dname() is called from d_path(). |
325 | */ | 311 | */ |
@@ -333,6 +319,21 @@ static const struct dentry_operations sockfs_dentry_operations = { | |||
333 | .d_dname = sockfs_dname, | 319 | .d_dname = sockfs_dname, |
334 | }; | 320 | }; |
335 | 321 | ||
322 | static struct dentry *sockfs_mount(struct file_system_type *fs_type, | ||
323 | int flags, const char *dev_name, void *data) | ||
324 | { | ||
325 | return mount_pseudo(fs_type, "socket:", &sockfs_ops, | ||
326 | &sockfs_dentry_operations, SOCKFS_MAGIC); | ||
327 | } | ||
328 | |||
329 | static struct vfsmount *sock_mnt __read_mostly; | ||
330 | |||
331 | static struct file_system_type sock_fs_type = { | ||
332 | .name = "sockfs", | ||
333 | .mount = sockfs_mount, | ||
334 | .kill_sb = kill_anon_super, | ||
335 | }; | ||
336 | |||
336 | /* | 337 | /* |
337 | * Obtains the first available file descriptor and sets it up for use. | 338 | * Obtains the first available file descriptor and sets it up for use. |
338 | * | 339 | * |
@@ -368,7 +369,6 @@ static int sock_alloc_file(struct socket *sock, struct file **f, int flags) | |||
368 | } | 369 | } |
369 | path.mnt = mntget(sock_mnt); | 370 | path.mnt = mntget(sock_mnt); |
370 | 371 | ||
371 | d_set_d_op(path.dentry, &sockfs_dentry_operations); | ||
372 | d_instantiate(path.dentry, SOCK_INODE(sock)); | 372 | d_instantiate(path.dentry, SOCK_INODE(sock)); |
373 | SOCK_INODE(sock)->i_fop = &socket_file_ops; | 373 | SOCK_INODE(sock)->i_fop = &socket_file_ops; |
374 | 374 | ||