Merged into cifs-2.6.git fo-next and kicked off the buildbot with current for-next http://smb3-test-rhel-75.southcentralus.cloudapp.azure.com/#/builders/2/builds/162 On Thu, Mar 14, 2019 at 9:08 AM Ronnie Sahlberg <lsahlber@xxxxxxxxxx> wrote: > > smb2_set_sparse does not return -errno, it returns a boolean where > true means success. > Change this to just ignore the return value just like the other callsites. > > Additionally add code to handle the case where we must set the file sparse > and possibly also extending it. > > Fixes xfstests: generic/236 generic/350 generic/420 > > Signed-off-by: Ronnie Sahlberg <lsahlber@xxxxxxxxxx> > Signed-off-by: Steve French <stfrench@xxxxxxxxxxxxx> > --- > fs/cifs/smb2ops.c | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > > diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c > index 32dde87feaa9..03814b9f113d 100644 > --- a/fs/cifs/smb2ops.c > +++ b/fs/cifs/smb2ops.c > @@ -2718,6 +2718,7 @@ static long smb3_simple_falloc(struct file *file, struct cifs_tcon *tcon, > struct cifsFileInfo *cfile = file->private_data; > long rc = -EOPNOTSUPP; > unsigned int xid; > + __le64 eof; > > xid = get_xid(); > > @@ -2777,9 +2778,18 @@ static long smb3_simple_falloc(struct file *file, struct cifs_tcon *tcon, > return rc; > } > > - rc = smb2_set_sparse(xid, tcon, cfile, inode, false); > + smb2_set_sparse(xid, tcon, cfile, inode, false); > + rc = 0; > + } else { > + smb2_set_sparse(xid, tcon, cfile, inode, false); > + rc = 0; > + if (i_size_read(inode) < off + len) { > + eof = cpu_to_le64(off + len); > + rc = SMB2_set_eof(xid, tcon, cfile->fid.persistent_fid, > + cfile->fid.volatile_fid, cfile->pid, > + &eof); > + } > } > - /* BB: else ... in future add code to extend file and set sparse */ > > if (rc) > trace_smb3_falloc_err(xid, cfile->fid.persistent_fid, tcon->tid, > -- > 2.13.6 > -- Thanks, Steve