nilfs2: simplify handling of active state of segments
will reduce some lines of segment constructor. Previously, the state was complexly controlled through a list of segments in order to keep consistency in meta data of usage state of segments. Instead, this presents ``calculated'' active flags to userland cleaner program and stop maintaining its real flag on disk. Only by this fake flag, the cleaner cannot exactly know if each segment is reclaimable or not. However, the recent extension of nilfs_sustat ioctl struct (nilfs2-extend-nilfs_sustat-ioctl-struct.patch) can prevent the cleaner from reclaiming in-use segment wrongly. So, now I can apply this for simplification. 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>
This commit is contained in:

committed by
Linus Torvalds

parent
c96fa464a5
commit
cece552074
@@ -90,7 +90,6 @@ struct nilfs_segsum_pointer {
|
||||
* @sc_nblk_inc: Block count of current generation
|
||||
* @sc_dirty_files: List of files to be written
|
||||
* @sc_gc_inodes: List of GC inodes having blocks to be written
|
||||
* @sc_active_segments: List of active segments that were already written out
|
||||
* @sc_cleaning_segments: List of segments to be freed through construction
|
||||
* @sc_copied_buffers: List of copied buffers (buffer heads) to freeze data
|
||||
* @sc_dsync_inode: inode whose data pages are written for a sync operation
|
||||
@@ -132,7 +131,6 @@ struct nilfs_sc_info {
|
||||
|
||||
struct list_head sc_dirty_files;
|
||||
struct list_head sc_gc_inodes;
|
||||
struct list_head sc_active_segments;
|
||||
struct list_head sc_cleaning_segments;
|
||||
struct list_head sc_copied_buffers;
|
||||
|
||||
@@ -232,8 +230,7 @@ extern int nilfs_segctor_add_segments_to_be_freed(struct nilfs_sc_info *,
|
||||
__u64 *, size_t);
|
||||
extern void nilfs_segctor_clear_segments_to_be_freed(struct nilfs_sc_info *);
|
||||
|
||||
extern int nilfs_attach_segment_constructor(struct nilfs_sb_info *,
|
||||
struct nilfs_recovery_info *);
|
||||
extern int nilfs_attach_segment_constructor(struct nilfs_sb_info *);
|
||||
extern void nilfs_detach_segment_constructor(struct nilfs_sb_info *);
|
||||
|
||||
/* recovery.c */
|
||||
|
Reference in New Issue
Block a user