diff options
author | Zhihao Cheng <chengzhihao1@huawei.com> | 2020-08-17 22:29:09 +0800 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2020-09-17 22:56:09 +0200 |
commit | dd7db149bcd914db8fdeb19cd5597c0740121bc7 (patch) | |
tree | 42c4d735df65cc5879a0e9b9d832d8bf3b36bfb0 /fs/ubifs | |
parent | d005f8c6588efcfbe88099b6edafc6f58c84a9c1 (diff) | |
download | linux-dd7db149bcd914db8fdeb19cd5597c0740121bc7.tar.gz linux-dd7db149bcd914db8fdeb19cd5597c0740121bc7.tar.bz2 linux-dd7db149bcd914db8fdeb19cd5597c0740121bc7.zip |
ubifs: ubifs_jnl_change_xattr: Remove assertion 'nlink > 0' for host inode
Changing xattr of a temp file will trigger following assertion failed
and make ubifs turn into readonly filesystem:
ubifs_assert_failed [ubifs]: UBIFS assert failed: host->i_nlink > 0,
in fs/ubifs/journal.c:1801
Reproducer:
1. fd = open(__O_TMPFILE)
2. fsetxattr(fd, key, value2, XATTR_CREATE)
3. fsetxattr(fd, key, value2, XATTR_REPLACE)
Fix this by removing assertion 'nlink > 0' for host inode.
Reported-by: Chengsong Ke <kechengsong@huawei.com>
Signed-off-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'fs/ubifs')
-rw-r--r-- | fs/ubifs/journal.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/ubifs/journal.c b/fs/ubifs/journal.c index ed935aefe3e0..cb1fa0c37322 100644 --- a/fs/ubifs/journal.c +++ b/fs/ubifs/journal.c @@ -1800,7 +1800,6 @@ int ubifs_jnl_change_xattr(struct ubifs_info *c, const struct inode *inode, u8 hash[UBIFS_HASH_ARR_SZ]; dbg_jnl("ino %lu, ino %lu", host->i_ino, inode->i_ino); - ubifs_assert(c, host->i_nlink > 0); ubifs_assert(c, inode->i_nlink > 0); ubifs_assert(c, mutex_is_locked(&host_ui->ui_mutex)); |