there is no need to update in-bh inode each write,
overwrites can skip that. otherwise:
1) transaction can exceed reserved credits as
osd_declare_write() doesn't count inode for overwrites
2) copy is not free and this can be called few times for
each operation: last_rcvd data, changelog.
Fixes:
a23aac2219 ("LU-13416 ldiskfs: don't corrupt data on journal replay")
Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I47f463d9421cea7fb32e03fa5ba0ab6524511a29
Reviewed-on: https://review.whamcloud.com/41069
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Mike Pershin <mpershin@whamcloud.com>
++bufsize;
}
- dirty_inode = test_and_set_bit(LDISKFS_INODE_JOURNAL_DATA,
+ /* only the first flag-set matters */
+ dirty_inode = !test_and_set_bit(LDISKFS_INODE_JOURNAL_DATA,
&ei->i_flags);
/* sparse checking is racy, but sparse is very rare case, leave as is */