diff options
author | Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> | 2009-06-07 12:39:29 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2009-06-11 21:36:17 -0400 |
commit | 33c8e57c86d1bd1548c12a4f7c4bceb94b862cca (patch) | |
tree | 8e2052a81dc1036e64d78da1082ab6af01ae4bbd /fs/nilfs2/the_nilfs.h | |
parent | 81fc20bd0e75ba6357bce2403767d7c2585d8f28 (diff) |
nilfs2: get rid of sget use for acquiring nilfs object
This will change the way to obtain nilfs object in nilfs_get_sb()
function.
Previously, a preliminary sget() call was performed, and the nilfs
object was acquired from a super block instance found by the sget()
call.
This patch, instead, instroduces a new dedicated function
find_or_create_nilfs(); as the name implies, the function finds an
existent nilfs object from a global list or creates a new one if no
object is found on the device.
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/nilfs2/the_nilfs.h')
-rw-r--r-- | fs/nilfs2/the_nilfs.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/nilfs2/the_nilfs.h b/fs/nilfs2/the_nilfs.h index 30fe58778d05..116caf96e7f3 100644 --- a/fs/nilfs2/the_nilfs.h +++ b/fs/nilfs2/the_nilfs.h | |||
@@ -43,6 +43,7 @@ enum { | |||
43 | * struct the_nilfs - struct to supervise multiple nilfs mount points | 43 | * struct the_nilfs - struct to supervise multiple nilfs mount points |
44 | * @ns_flags: flags | 44 | * @ns_flags: flags |
45 | * @ns_count: reference count | 45 | * @ns_count: reference count |
46 | * @ns_list: list head for nilfs_list | ||
46 | * @ns_bdev: block device | 47 | * @ns_bdev: block device |
47 | * @ns_bdi: backing dev info | 48 | * @ns_bdi: backing dev info |
48 | * @ns_writer: back pointer to writable nilfs_sb_info | 49 | * @ns_writer: back pointer to writable nilfs_sb_info |
@@ -88,6 +89,7 @@ enum { | |||
88 | struct the_nilfs { | 89 | struct the_nilfs { |
89 | unsigned long ns_flags; | 90 | unsigned long ns_flags; |
90 | atomic_t ns_count; | 91 | atomic_t ns_count; |
92 | struct list_head ns_list; | ||
91 | 93 | ||
92 | struct block_device *ns_bdev; | 94 | struct block_device *ns_bdev; |
93 | struct backing_dev_info *ns_bdi; | 95 | struct backing_dev_info *ns_bdi; |
@@ -191,7 +193,7 @@ THE_NILFS_FNS(DISCONTINUED, discontinued) | |||
191 | #define NILFS_ALTSB_FREQ 60 /* spare superblock */ | 193 | #define NILFS_ALTSB_FREQ 60 /* spare superblock */ |
192 | 194 | ||
193 | void nilfs_set_last_segment(struct the_nilfs *, sector_t, u64, __u64); | 195 | void nilfs_set_last_segment(struct the_nilfs *, sector_t, u64, __u64); |
194 | struct the_nilfs *alloc_nilfs(struct block_device *); | 196 | struct the_nilfs *find_or_create_nilfs(struct block_device *); |
195 | void put_nilfs(struct the_nilfs *); | 197 | void put_nilfs(struct the_nilfs *); |
196 | int init_nilfs(struct the_nilfs *, struct nilfs_sb_info *, char *); | 198 | int init_nilfs(struct the_nilfs *, struct nilfs_sb_info *, char *); |
197 | int load_nilfs(struct the_nilfs *, struct nilfs_sb_info *); | 199 | int load_nilfs(struct the_nilfs *, struct nilfs_sb_info *); |