diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2021-12-15 20:35:45 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:09:18 -0400 |
commit | 51c4e406aa5706cdb224ff16eef1d560c504c3ac (patch) | |
tree | 1a2e25a3f385f6bc5b8019dcef7a3f5b485a76ac /fs | |
parent | 2a863c6c80e3c14eb3920c0d8474ba112c82197a (diff) |
bcachefs: Fix an assertion in bch2_truncate()
We recently added an assertion that when we truncate a file to 0,
i_blocks should also go to 0 - but that's not necessarily true if we're
doing an emergency shutdown, lots of invariants no longer hold true in
that case.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/bcachefs/fs-io.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/bcachefs/fs-io.c b/fs/bcachefs/fs-io.c index 2f144fa3298d..28bbbac5cd67 100644 --- a/fs/bcachefs/fs-io.c +++ b/fs/bcachefs/fs-io.c @@ -2699,7 +2699,8 @@ int bch2_truncate(struct mnt_idmap *idmap, U64_MAX, &i_sectors_delta); i_sectors_acct(c, inode, NULL, i_sectors_delta); - BUG_ON(!inode->v.i_size && inode->v.i_blocks); + WARN_ON(!inode->v.i_size && inode->v.i_blocks && + !bch2_journal_error(&c->journal)); if (unlikely(ret)) goto err; |