Discard subsystem is now enabled conditionally, using "discard" mount option. For now there is no auto-detection in either direction. Signed-off-by: Ivan Shapovalov <intelfx100@xxxxxxxxx> --- fs/reiser4/discard.c | 9 +++++++++ fs/reiser4/init_super.c | 2 ++ fs/reiser4/super.h | 4 +++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/fs/reiser4/discard.c b/fs/reiser4/discard.c index 6f8bbfa..cf4c8f9 100644 --- a/fs/reiser4/discard.c +++ b/fs/reiser4/discard.c @@ -348,6 +348,11 @@ int discard_atom(txn_atom *atom) struct list_head discard_set, *pos, *next; struct discard_set_entry *entry, *next_entry; + if (!reiser4_is_set(reiser4_get_current_sb(), REISER4_DISCARD)) { + spin_unlock_atom(atom); + return 0; + } + if (list_empty(&atom->discard_set)) { spin_unlock_atom(atom); return 0; @@ -395,6 +400,10 @@ extern int discard_set_add_extent(txn_atom *atom, const reiser4_block_nr *start, const reiser4_block_nr *len) { + if (!reiser4_is_set(reiser4_get_current_sb(), REISER4_DISCARD)) { + return 0; + } + if (*new_entry == NULL) { /* * Optimization: try to merge new extent into the last one. diff --git a/fs/reiser4/init_super.c b/fs/reiser4/init_super.c index bd9c295..c3f9fde 100644 --- a/fs/reiser4/init_super.c +++ b/fs/reiser4/init_super.c @@ -459,6 +459,8 @@ int reiser4_init_super_data(struct super_block *super, char *opt_string) PUSH_BIT_OPT("atomic_write", REISER4_ATOMIC_WRITE); /* disable use of write barriers in the reiser4 log writer. */ PUSH_BIT_OPT("no_write_barrier", REISER4_NO_WRITE_BARRIER); + /* enable issuing of discard requests */ + PUSH_BIT_OPT("discard", REISER4_DISCARD); PUSH_OPT(p, opts, { diff --git a/fs/reiser4/super.h b/fs/reiser4/super.h index 46e69fd..95c9d1c8 100644 --- a/fs/reiser4/super.h +++ b/fs/reiser4/super.h @@ -51,7 +51,9 @@ typedef enum { /* enforce atomicity during write(2) */ REISER4_ATOMIC_WRITE = 6, /* don't use write barriers in the log writer code. */ - REISER4_NO_WRITE_BARRIER = 7 + REISER4_NO_WRITE_BARRIER = 7, + /* enable issuing of discard requests */ + REISER4_DISCARD = 8 } reiser4_fs_flag; /* -- 1.9.2 -- To unsubscribe from this list: send the line "unsubscribe reiserfs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html