3.16.65-rc1 review patch. If anyone has any objections, please let me know.
------------------
From: Theodore Ts'o tytso@mit.edu
commit 18f2c4fcebf2582f96cbd5f2238f4f354a0e4847 upstream.
If the file system has been shut down or is read-only, then ext4_write_inode() needs to bail out early.
Also use jbd2_complete_transaction() instead of ext4_force_commit() so we only force a commit if it is needed.
Signed-off-by: Theodore Ts'o tytso@mit.edu [bwh: Backported to 3.16: - Open-code sb_rdonly() - Drop ext4_forced_shutdown() check] Signed-off-by: Ben Hutchings ben@decadent.org.uk --- --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -4658,7 +4658,8 @@ int ext4_write_inode(struct inode *inode { int err;
- if (WARN_ON_ONCE(current->flags & PF_MEMALLOC)) + if (WARN_ON_ONCE(current->flags & PF_MEMALLOC) || + (inode->i_sb->s_flags & MS_RDONLY)) return 0;
if (EXT4_SB(inode->i_sb)->s_journal) { @@ -4676,7 +4677,8 @@ int ext4_write_inode(struct inode *inode if (wbc->sync_mode != WB_SYNC_ALL || wbc->for_sync) return 0;
- err = ext4_force_commit(inode->i_sb); + err = jbd2_complete_transaction(EXT4_SB(inode->i_sb)->s_journal, + EXT4_I(inode)->i_sync_tid); } else { struct ext4_iloc iloc;