Before performing any xattr settings, it is necessary to first confirm that both xattr_root and priv_root are valid. Reported-and-tested-by: syzbot+74dce9511a59ad67a492@xxxxxxxxxxxxxxxxxxxxxxxxx Signed-off-by: Edward Adam Davis <eadavis@xxxxxx --- fs/reiserfs/xattr.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c index 998035a6388e..00fd8f747394 100644 --- a/fs/reiserfs/xattr.c +++ b/fs/reiserfs/xattr.c @@ -618,6 +618,9 @@ int reiserfs_xattr_set(struct inode *inode, const char *name, int error, error2; size_t jbegin_count = reiserfs_xattr_nblocks(inode, buffer_size); + if (!reiserfs_xattrs_initialized(inode->i_sb)) + return -EOPNOTSUPP; + /* Check before we start a transaction and then do nothing. */ if (!d_really_is_positive(REISERFS_SB(inode->i_sb)->priv_root)) return -EOPNOTSUPP; -- 2.43.0