On Sunday 17 August 2014 at 19:59:14, Ivan Shapovalov wrote: > On Sunday 17 August 2014 at 19:43:24, Ivan Shapovalov wrote: > > The atoms generated by reiser4_trim_fs(), despite being empty (zero > > capture_count), still have non-empty delete sets which have to be > > processed. > > > > Signed-off-by: Ivan Shapovalov <intelfx100@xxxxxxxxx> > > --- > > fs/reiser4/txnmgr.c | 7 ++++++- > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > diff --git a/fs/reiser4/txnmgr.c b/fs/reiser4/txnmgr.c > > index 2862940..3f44c9c 100644 > > --- a/fs/reiser4/txnmgr.c > > +++ b/fs/reiser4/txnmgr.c > > @@ -1064,8 +1064,13 @@ static int commit_current_atom(long *nr_submitted, txn_atom ** atom) > > return RETERR(-E_REPEAT); > > } > > > > - if ((*atom)->capture_count == 0) > > + if ((*atom)->capture_count == 0) { > > + /* Process the atom's delete set. > > + * Even if the atom has no captured nodes, the delete set may > > + * still be non-empty (see e. g. reiser4_trim_fs()). */ > > + reiser4_post_writeback_hook(); > > Oops, a typo. Will resend the series... Actually, it's not just a typo. reiser4_post_write_back_hook() shall be called with atom spinlock released. See PATCHv2, and sorry for the noise. -- Ivan Shapovalov / intelfx / > > > goto done; > > + } > > > > /* Up to this point we have been flushing and after flush is called we > > return -E_REPEAT. Now we can commit. We cannot return -E_REPEAT > >
Attachment:
signature.asc
Description: This is a digitally signed message part.