On Wed, Dec 15, 2021 at 12:59:27PM +0100, Jan Kara wrote: > Hello Dan! > > On Wed 15-12-21 14:42:31, Dan Carpenter wrote: > > 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? > > The comment above explains it I guess. We don't want to return error if > ext4_journal_start() fails because it is a "soft" failure we can absorb. > > Honza Oh, yeah. Sorry. regards, dan carpenter