diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c index 97417b5569a9..2e22da11e240 100644 --- a/fs/btrfs/send.c +++ b/fs/btrfs/send.c @@ -7381,7 +7381,7 @@ long btrfs_ioctl_send(struct file *mnt_file, struct btrfs_ioctl_send_args *arg) sctx->flags = arg->flags; sctx->send_filp = fget(arg->send_fd); - if (!sctx->send_filp) { + if (!sctx->send_filp || !(sctx->send_filp->f_mode & FMODE_WRITE)) { ret = -EBADF; goto out; }