diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-06-24 08:41:41 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-06-24 13:07:53 -0400 |
commit | 816724e65c72a90a44fbad0ef0b59b186c85fa90 (patch) | |
tree | 421fa29aedff988e392f92780637553e275d37a0 /Documentation/filesystems | |
parent | 70ac4385a13f78bc478f26d317511893741b05bd (diff) | |
parent | d384ea691fe4ea8c2dd5b9b8d9042eb181776f18 (diff) |
Merge branch 'master' of /home/trondmy/kernel/linux-2.6/
Conflicts:
fs/nfs/inode.c
fs/super.c
Fix conflicts between patch 'NFS: Split fs/nfs/inode.c' and patch
'VFS: Permit filesystem to override root dentry on mount'
Diffstat (limited to 'Documentation/filesystems')
-rw-r--r-- | Documentation/filesystems/Locking | 9 | ||||
-rw-r--r-- | Documentation/filesystems/porting | 7 | ||||
-rw-r--r-- | Documentation/filesystems/vfs.txt | 6 |
3 files changed, 12 insertions, 10 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 1045da582b9b..d31efbbdfe50 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
@@ -99,7 +99,7 @@ prototypes: | |||
99 | int (*sync_fs)(struct super_block *sb, int wait); | 99 | int (*sync_fs)(struct super_block *sb, int wait); |
100 | void (*write_super_lockfs) (struct super_block *); | 100 | void (*write_super_lockfs) (struct super_block *); |
101 | void (*unlockfs) (struct super_block *); | 101 | void (*unlockfs) (struct super_block *); |
102 | int (*statfs) (struct super_block *, struct kstatfs *); | 102 | int (*statfs) (struct dentry *, struct kstatfs *); |
103 | int (*remount_fs) (struct super_block *, int *, char *); | 103 | int (*remount_fs) (struct super_block *, int *, char *); |
104 | void (*clear_inode) (struct inode *); | 104 | void (*clear_inode) (struct inode *); |
105 | void (*umount_begin) (struct super_block *); | 105 | void (*umount_begin) (struct super_block *); |
@@ -142,15 +142,16 @@ see also dquot_operations section. | |||
142 | 142 | ||
143 | --------------------------- file_system_type --------------------------- | 143 | --------------------------- file_system_type --------------------------- |
144 | prototypes: | 144 | prototypes: |
145 | struct super_block *(*get_sb) (struct file_system_type *, int, | 145 | struct int (*get_sb) (struct file_system_type *, int, |
146 | const char *, void *); | 146 | const char *, void *, struct vfsmount *); |
147 | void (*kill_sb) (struct super_block *); | 147 | void (*kill_sb) (struct super_block *); |
148 | locking rules: | 148 | locking rules: |
149 | may block BKL | 149 | may block BKL |
150 | get_sb yes yes | 150 | get_sb yes yes |
151 | kill_sb yes yes | 151 | kill_sb yes yes |
152 | 152 | ||
153 | ->get_sb() returns error or a locked superblock (exclusive on ->s_umount). | 153 | ->get_sb() returns error or 0 with locked superblock attached to the vfsmount |
154 | (exclusive on ->s_umount). | ||
154 | ->kill_sb() takes a write-locked superblock, does all shutdown work on it, | 155 | ->kill_sb() takes a write-locked superblock, does all shutdown work on it, |
155 | unlocks and drops the reference. | 156 | unlocks and drops the reference. |
156 | 157 | ||
diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting index 2f388460cbe7..5531694059ab 100644 --- a/Documentation/filesystems/porting +++ b/Documentation/filesystems/porting | |||
@@ -50,10 +50,11 @@ Turn your foo_read_super() into a function that would return 0 in case of | |||
50 | success and negative number in case of error (-EINVAL unless you have more | 50 | success and negative number in case of error (-EINVAL unless you have more |
51 | informative error value to report). Call it foo_fill_super(). Now declare | 51 | informative error value to report). Call it foo_fill_super(). Now declare |
52 | 52 | ||
53 | struct super_block foo_get_sb(struct file_system_type *fs_type, | 53 | int foo_get_sb(struct file_system_type *fs_type, |
54 | int flags, const char *dev_name, void *data) | 54 | int flags, const char *dev_name, void *data, struct vfsmount *mnt) |
55 | { | 55 | { |
56 | return get_sb_bdev(fs_type, flags, dev_name, data, ext2_fill_super); | 56 | return get_sb_bdev(fs_type, flags, dev_name, data, foo_fill_super, |
57 | mnt); | ||
57 | } | 58 | } |
58 | 59 | ||
59 | (or similar with s/bdev/nodev/ or s/bdev/single/, depending on the kind of | 60 | (or similar with s/bdev/nodev/ or s/bdev/single/, depending on the kind of |
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index 3a2e5520c1e3..9d3aed628bc1 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt | |||
@@ -113,8 +113,8 @@ members are defined: | |||
113 | struct file_system_type { | 113 | struct file_system_type { |
114 | const char *name; | 114 | const char *name; |
115 | int fs_flags; | 115 | int fs_flags; |
116 | struct super_block *(*get_sb) (struct file_system_type *, int, | 116 | struct int (*get_sb) (struct file_system_type *, int, |
117 | const char *, void *); | 117 | const char *, void *, struct vfsmount *); |
118 | void (*kill_sb) (struct super_block *); | 118 | void (*kill_sb) (struct super_block *); |
119 | struct module *owner; | 119 | struct module *owner; |
120 | struct file_system_type * next; | 120 | struct file_system_type * next; |
@@ -211,7 +211,7 @@ struct super_operations { | |||
211 | int (*sync_fs)(struct super_block *sb, int wait); | 211 | int (*sync_fs)(struct super_block *sb, int wait); |
212 | void (*write_super_lockfs) (struct super_block *); | 212 | void (*write_super_lockfs) (struct super_block *); |
213 | void (*unlockfs) (struct super_block *); | 213 | void (*unlockfs) (struct super_block *); |
214 | int (*statfs) (struct super_block *, struct kstatfs *); | 214 | int (*statfs) (struct dentry *, struct kstatfs *); |
215 | int (*remount_fs) (struct super_block *, int *, char *); | 215 | int (*remount_fs) (struct super_block *, int *, char *); |
216 | void (*clear_inode) (struct inode *); | 216 | void (*clear_inode) (struct inode *); |
217 | void (*umount_begin) (struct super_block *); | 217 | void (*umount_begin) (struct super_block *); |