mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 22:02:28 +00:00
ubifs: remove broken lazytime support
When "ubifs: introduce UBIFS_ATIME_SUPPORT to ubifs" introduced atime
support to ubifs, it also added lazytime support. As far as I can tell
the lazytime support is terminally broken, as it causes
mark_inode_dirty_sync to be called from __writeback_single_inode, which
will then trigger the locking assert in ubifs_dirty_inode. Just remove
the broken lazytime support for now, it can be added back later,
especially as some infrastructure changes should make that easier soon.
Fixes: 8c1c5f2638
("ubifs: introduce UBIFS_ATIME_SUPPORT to ubifs")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
parent
c0cc271173
commit
ecf84096a5
@ -1375,7 +1375,6 @@ int ubifs_update_time(struct inode *inode, struct timespec64 *time,
|
||||
struct ubifs_info *c = inode->i_sb->s_fs_info;
|
||||
struct ubifs_budget_req req = { .dirtied_ino = 1,
|
||||
.dirtied_ino_d = ALIGN(ui->data_len, 8) };
|
||||
int iflags = I_DIRTY_TIME;
|
||||
int err, release;
|
||||
|
||||
if (!IS_ENABLED(CONFIG_UBIFS_ATIME_SUPPORT))
|
||||
@ -1393,11 +1392,8 @@ int ubifs_update_time(struct inode *inode, struct timespec64 *time,
|
||||
if (flags & S_MTIME)
|
||||
inode->i_mtime = *time;
|
||||
|
||||
if (!(inode->i_sb->s_flags & SB_LAZYTIME))
|
||||
iflags |= I_DIRTY_SYNC;
|
||||
|
||||
release = ui->dirty;
|
||||
__mark_inode_dirty(inode, iflags);
|
||||
__mark_inode_dirty(inode, I_DIRTY_SYNC);
|
||||
mutex_unlock(&ui->ui_mutex);
|
||||
if (release)
|
||||
ubifs_release_budget(c, &req);
|
||||
|
Loading…
Reference in New Issue
Block a user