aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nilfs2/the_nilfs.h
diff options
context:
space:
mode:
authorRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>2009-04-06 22:01:54 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-04-07 11:31:19 -0400
commit2c2e52fc4fca251e68f90821c9ff5cb18be4df58 (patch)
treefb0b86203bb5f4dda4d5907e29bd2b1b6cc0be90 /fs/nilfs2/the_nilfs.h
parent7a9461939a46345860622ea36ff267ee4446f00f (diff)
nilfs2: extend nilfs_sustat ioctl struct
This adds a new argument to the nilfs_sustat structure. The extended field allows to delete volatile active state of segments, which was needed to protect freshly-created segments from garbage collection but has confused code dealing with segments. This extension alleviates the mess and gives room for further simplifications. The volatile active flag is not persistent, so it's eliminable on this occasion without affecting compatibility other than the ioctl change. Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/nilfs2/the_nilfs.h')
-rw-r--r--fs/nilfs2/the_nilfs.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/nilfs2/the_nilfs.h b/fs/nilfs2/the_nilfs.h
index 75da37306964..af566e78f7af 100644
--- a/fs/nilfs2/the_nilfs.h
+++ b/fs/nilfs2/the_nilfs.h
@@ -51,7 +51,6 @@ enum {
51 * @ns_writer_refcount: number of referrers on ns_writer 51 * @ns_writer_refcount: number of referrers on ns_writer
52 * @ns_sbh: buffer head of the on-disk super block 52 * @ns_sbh: buffer head of the on-disk super block
53 * @ns_sbp: pointer to the super block data 53 * @ns_sbp: pointer to the super block data
54 * @ns_used_segments: list of full segments in volatile active state
55 * @ns_supers: list of nilfs super block structs 54 * @ns_supers: list of nilfs super block structs
56 * @ns_seg_seq: segment sequence counter 55 * @ns_seg_seq: segment sequence counter
57 * @ns_segnum: index number of the latest full segment. 56 * @ns_segnum: index number of the latest full segment.
@@ -65,6 +64,7 @@ enum {
65 * @ns_last_pseg: start block number of the latest segment 64 * @ns_last_pseg: start block number of the latest segment
66 * @ns_last_seq: sequence value of the latest segment 65 * @ns_last_seq: sequence value of the latest segment
67 * @ns_last_cno: checkpoint number of the latest segment 66 * @ns_last_cno: checkpoint number of the latest segment
67 * @ns_prot_seq: least sequence number of segments which must not be reclaimed
68 * @ns_free_segments_count: counter of free segments 68 * @ns_free_segments_count: counter of free segments
69 * @ns_segctor_sem: segment constructor semaphore 69 * @ns_segctor_sem: segment constructor semaphore
70 * @ns_dat: DAT file inode 70 * @ns_dat: DAT file inode
@@ -103,7 +103,6 @@ struct the_nilfs {
103 */ 103 */
104 struct buffer_head *ns_sbh; 104 struct buffer_head *ns_sbh;
105 struct nilfs_super_block *ns_sbp; 105 struct nilfs_super_block *ns_sbp;
106 struct list_head ns_used_segments;
107 unsigned ns_mount_state; 106 unsigned ns_mount_state;
108 struct list_head ns_supers; 107 struct list_head ns_supers;
109 108
@@ -132,6 +131,7 @@ struct the_nilfs {
132 sector_t ns_last_pseg; 131 sector_t ns_last_pseg;
133 u64 ns_last_seq; 132 u64 ns_last_seq;
134 __u64 ns_last_cno; 133 __u64 ns_last_cno;
134 u64 ns_prot_seq;
135 unsigned long ns_free_segments_count; 135 unsigned long ns_free_segments_count;
136 136
137 struct rw_semaphore ns_segctor_sem; 137 struct rw_semaphore ns_segctor_sem;
@@ -188,7 +188,6 @@ void put_nilfs(struct the_nilfs *);
188int init_nilfs(struct the_nilfs *, struct nilfs_sb_info *, char *); 188int init_nilfs(struct the_nilfs *, struct nilfs_sb_info *, char *);
189int load_nilfs(struct the_nilfs *, struct nilfs_sb_info *); 189int load_nilfs(struct the_nilfs *, struct nilfs_sb_info *);
190int nilfs_count_free_blocks(struct the_nilfs *, sector_t *); 190int nilfs_count_free_blocks(struct the_nilfs *, sector_t *);
191void nilfs_dispose_used_segments(struct the_nilfs *);
192int nilfs_checkpoint_is_mounted(struct the_nilfs *, __u64, int); 191int nilfs_checkpoint_is_mounted(struct the_nilfs *, __u64, int);
193int nilfs_near_disk_full(struct the_nilfs *); 192int nilfs_near_disk_full(struct the_nilfs *);
194 193