afs: afs_unlink() doesn't need to check dentry->d_inode
Don't check that dentry->d_inode is valid in afs_unlink(). We should be able to take that as given. This caused Smatch to issue the following warning: fs/afs/dir.c:1392 afs_unlink() error: we previously assumed 'vnode' could be null (see line 1375) Reported-by: kbuild test robot <lkp@intel.com> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
parent
2cd42d19cf
commit
fa59f52f5b
14
fs/afs/dir.c
14
fs/afs/dir.c
|
@ -1394,7 +1394,8 @@ static int afs_unlink(struct inode *dir, struct dentry *dentry)
|
||||||
{
|
{
|
||||||
struct afs_fs_cursor fc;
|
struct afs_fs_cursor fc;
|
||||||
struct afs_status_cb *scb;
|
struct afs_status_cb *scb;
|
||||||
struct afs_vnode *dvnode = AFS_FS_I(dir), *vnode = NULL;
|
struct afs_vnode *dvnode = AFS_FS_I(dir);
|
||||||
|
struct afs_vnode *vnode = AFS_FS_I(d_inode(dentry));
|
||||||
struct key *key;
|
struct key *key;
|
||||||
bool need_rehash = false;
|
bool need_rehash = false;
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -1417,15 +1418,12 @@ static int afs_unlink(struct inode *dir, struct dentry *dentry)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Try to make sure we have a callback promise on the victim. */
|
/* Try to make sure we have a callback promise on the victim. */
|
||||||
if (d_really_is_positive(dentry)) {
|
ret = afs_validate(vnode, key);
|
||||||
vnode = AFS_FS_I(d_inode(dentry));
|
if (ret < 0)
|
||||||
ret = afs_validate(vnode, key);
|
goto error_key;
|
||||||
if (ret < 0)
|
|
||||||
goto error_key;
|
|
||||||
}
|
|
||||||
|
|
||||||
spin_lock(&dentry->d_lock);
|
spin_lock(&dentry->d_lock);
|
||||||
if (vnode && d_count(dentry) > 1) {
|
if (d_count(dentry) > 1) {
|
||||||
spin_unlock(&dentry->d_lock);
|
spin_unlock(&dentry->d_lock);
|
||||||
/* Start asynchronous writeout of the inode */
|
/* Start asynchronous writeout of the inode */
|
||||||
write_inode_now(d_inode(dentry), 0);
|
write_inode_now(d_inode(dentry), 0);
|
||||||
|
|
Loading…
Reference in New Issue