diff options
Diffstat (limited to 'fs/xfs/xfs_dfrag.c')
| -rw-r--r-- | fs/xfs/xfs_dfrag.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/xfs/xfs_dfrag.c b/fs/xfs/xfs_dfrag.c index 5bba29a0781..7f159d2a429 100644 --- a/fs/xfs/xfs_dfrag.c +++ b/fs/xfs/xfs_dfrag.c @@ -69,7 +69,9 @@ xfs_swapext(  		goto out;  	} -	if (!(file->f_mode & FMODE_WRITE) || (file->f_flags & O_APPEND)) { +	if (!(file->f_mode & FMODE_WRITE) || +	    !(file->f_mode & FMODE_READ) || +	    (file->f_flags & O_APPEND)) {  		error = XFS_ERROR(EBADF);  		goto out_put_file;  	} @@ -81,6 +83,7 @@ xfs_swapext(  	}  	if (!(tmp_file->f_mode & FMODE_WRITE) || +	    !(tmp_file->f_mode & FMODE_READ) ||  	    (tmp_file->f_flags & O_APPEND)) {  		error = XFS_ERROR(EBADF);  		goto out_put_tmp_file;  |