[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211215114231.GA12626@kili>
Date: Wed, 15 Dec 2021 14:42:31 +0300
From: Dan Carpenter <dan.carpenter@...cle.com>
To: jack@...e.cz
Cc: linux-ext4@...r.kernel.org
Subject: [bug report] ext4: Set flags on quota files directly
Hello Jan Kara,
The patch 957153fce8d2: "ext4: Set flags on quota files directly"
from Apr 6, 2017, leads to the following Smatch static checker
warning:
fs/ext4/super.c:6779 ext4_quota_on()
warn: missing error code here? 'IS_ERR()' failed. 'err' = '0'
fs/ext4/super.c
6761
6762 lockdep_set_quota_inode(path->dentry->d_inode, I_DATA_SEM_QUOTA);
6763 err = dquot_quota_on(sb, type, format_id, path);
6764 if (err) {
6765 lockdep_set_quota_inode(path->dentry->d_inode,
6766 I_DATA_SEM_NORMAL);
6767 } else {
6768 struct inode *inode = d_inode(path->dentry);
6769 handle_t *handle;
6770
6771 /*
6772 * Set inode flags to prevent userspace from messing with quota
6773 * files. If this fails, we return success anyway since quotas
6774 * are already enabled and this is not a hard failure.
6775 */
6776 inode_lock(inode);
6777 handle = ext4_journal_start(inode, EXT4_HT_QUOTA, 1);
6778 if (IS_ERR(handle))
--> 6779 goto unlock_inode;
This should set "err = PTR_ERR(handle)" right?
6780 EXT4_I(inode)->i_flags |= EXT4_NOATIME_FL | EXT4_IMMUTABLE_FL;
6781 inode_set_flags(inode, S_NOATIME | S_IMMUTABLE,
6782 S_NOATIME | S_IMMUTABLE);
6783 err = ext4_mark_inode_dirty(handle, inode);
6784 ext4_journal_stop(handle);
6785 unlock_inode:
6786 inode_unlock(inode);
6787 }
6788 return err;
6789 }
regards,
dan carpenter
Powered by blists - more mailing lists