On Mon, Apr 03, 2017 at 11:36:48AM -0700, Jeremy Allison wrote: > On Mon, Apr 03, 2017 at 02:18:44PM -0400, Jeff Layton wrote: > > On Mon, 2017-04-03 at 11:09 -0700, Jeremy Allison wrote: > > > > > > CIFS has a way to reserve space. Look into "allocation size" on create. > > > > That won't help here as it's done on open(). > > > > The problem here is that we might create a file (and not preallocate > > anything), then write a bunch of stuff to the cache under an oplock. > > Then when we go to write back, we get the CIFS equivalent of -ENOSPC. > > > > What local filesystems do (AIUI) is preallocate so that you can catch > > an ENOSPC condition earlier, when you're dirtying new pages in the > > cache. That's pretty much impossible to do on a network filesystem > > though. > > There's also SMB_SET_FILE_ALLOCATION_INFO which can be > done over SMB1/2/3 on an open file handle. There's *always* a way to do something in SMB1/2/3. :-).