Message ID | 20190411235623.26659-1-lsahlber@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | cifs: zero-range does not require the file is sparse | expand |
I verified it fixed 5 xfstests (033, 149, 155, 180, 349) On Thu, Apr 11, 2019 at 6:56 PM Ronnie Sahlberg <lsahlber@redhat.com> wrote: > > Remove the conditional to fail zero-range if the file is not flagged as sparse. > You can still zero out a range in SMB2 even for non-sparse files. > > Tested with stock windows16 server. > > Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com> > --- > fs/cifs/smb2ops.c | 12 ------------ > 1 file changed, 12 deletions(-) > > diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c > index ca952dc3ec75..56e85f46cd82 100644 > --- a/fs/cifs/smb2ops.c > +++ b/fs/cifs/smb2ops.c > @@ -2664,18 +2664,6 @@ static long smb3_zero_range(struct file *file, struct cifs_tcon *tcon, > return rc; > } > > - /* > - * Must check if file sparse since fallocate -z (zero range) assumes > - * non-sparse allocation > - */ > - if (!(cifsi->cifsAttrs & FILE_ATTRIBUTE_SPARSE_FILE)) { > - rc = -EOPNOTSUPP; > - trace_smb3_zero_err(xid, cfile->fid.persistent_fid, tcon->tid, > - ses->Suid, offset, len, rc); > - free_xid(xid); > - return rc; > - } > - > cifs_dbg(FYI, "offset %lld len %lld", offset, len); > > fsctl_buf.FileOffset = cpu_to_le64(offset); > -- > 2.13.6 >
diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c index ca952dc3ec75..56e85f46cd82 100644 --- a/fs/cifs/smb2ops.c +++ b/fs/cifs/smb2ops.c @@ -2664,18 +2664,6 @@ static long smb3_zero_range(struct file *file, struct cifs_tcon *tcon, return rc; } - /* - * Must check if file sparse since fallocate -z (zero range) assumes - * non-sparse allocation - */ - if (!(cifsi->cifsAttrs & FILE_ATTRIBUTE_SPARSE_FILE)) { - rc = -EOPNOTSUPP; - trace_smb3_zero_err(xid, cfile->fid.persistent_fid, tcon->tid, - ses->Suid, offset, len, rc); - free_xid(xid); - return rc; - } - cifs_dbg(FYI, "offset %lld len %lld", offset, len); fsctl_buf.FileOffset = cpu_to_le64(offset);
Remove the conditional to fail zero-range if the file is not flagged as sparse. You can still zero out a range in SMB2 even for non-sparse files. Tested with stock windows16 server. Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com> --- fs/cifs/smb2ops.c | 12 ------------ 1 file changed, 12 deletions(-)