diff options
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/namei.c | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/namei.c b/fs/namei.c index 5b961eb71cb..f3c5b278895 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -1761,6 +1761,10 @@ do_last:  			goto exit;  		}  		filp = nameidata_to_filp(&nd, open_flag); +		if (IS_ERR(filp)) +			ima_counts_put(&nd.path, +				       acc_mode & (MAY_READ | MAY_WRITE | +						   MAY_EXEC));  		mnt_drop_write(nd.path.mnt);  		if (nd.root.mnt)  			path_put(&nd.root); @@ -1817,6 +1821,9 @@ ok:  		goto exit;  	}  	filp = nameidata_to_filp(&nd, open_flag); +	if (IS_ERR(filp)) +		ima_counts_put(&nd.path, +			       acc_mode & (MAY_READ | MAY_WRITE | MAY_EXEC));  	/*  	 * It is now safe to drop the mnt write  	 * because the filp has had a write taken  |