[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211215115927.GN14044@quack2.suse.cz>
Date: Wed, 15 Dec 2021 12:59:27 +0100
From: Jan Kara <jack@...e.cz>
To: Dan Carpenter <dan.carpenter@...cle.com>
Cc: jack@...e.cz, linux-ext4@...r.kernel.org
Subject: Re: [bug report] ext4: Set flags on quota files directly
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
--
Jan Kara <jack@...e.com>
SUSE Labs, CR
Powered by blists - more mailing lists