On Tue, Feb 19, 2019 at 09:53:58AM -0800, Darrick J. Wong wrote: > xfsrestore tries to RESVSP space for its index file and fails, > presumably because the vfs intercepts the RESVSP ioctl and calls > vfs_fallocate. But then xfsrestore seems to run ALLOCSP, which afaict > succeeds... ? s/ALLOCSP/fallocate/ I think. But not, fallocate on an always_cow inode does not work, because it can't (modulo the non-persistent delalloc only idea from Dave). > > Two questions: > > - Are you going to mask off xfs_ioc_space from alwayscow inodes like you > did for xfs_file_fallocate? xfs_ioc_space does a few different things: - it contains a RESVP implementation that actually is dead code, as the VFS takes care of it. - it contains a UNRESVSP implementation, this is supported by always_cow - it contains a ZERO_RANGE implementation, also supported by always_cow So nothing to do there. > - What are we going to do for xfsrestore if it encounters a filesystem > where everything is alwayscow? > > > xfs/205 > > "disk full, expected" ? > > /me wonders, since this is an ENOSPC test, why would it fail if we run > out of space. As far as I can tell because we run out of space too early due to the transient double block usage due to the COW writes.