Message ID | 20191011130316.13373-3-hch@lst.de (mailing list archive) |
---|---|
State | Deferred, archived |
Headers | show |
Series | [1/2] xfs: disable xfs_ioc_space for always COW inodes | expand |
On Fri, Oct 11, 2019 at 06:03:16AM -0700, Christoph Hellwig wrote: > There is no point in applying extent size hints for always COW inodes, > as we would just have to COW any extra allocation beyond the data > actually written. > > Signed-off-by: Christoph Hellwig <hch@lst.de> Looks ok, I guess? By the way, what's the plan for always_cow inodes, seeing as it's still only a debugging feature? Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> --D > --- > fs/xfs/xfs_inode.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c > index 18f4b262e61c..2e94deb4610a 100644 > --- a/fs/xfs/xfs_inode.c > +++ b/fs/xfs/xfs_inode.c > @@ -55,6 +55,12 @@ xfs_extlen_t > xfs_get_extsz_hint( > struct xfs_inode *ip) > { > + /* > + * No point in aligning allocations if we need to COW to actually > + * write to them. > + */ > + if (xfs_is_always_cow_inode(ip)) > + return 0; > if ((ip->i_d.di_flags & XFS_DIFLAG_EXTSIZE) && ip->i_d.di_extsize) > return ip->i_d.di_extsize; > if (XFS_IS_REALTIME_INODE(ip)) > -- > 2.20.1 >
On Fri, Oct 11, 2019 at 05:32:26PM -0700, Darrick J. Wong wrote: > On Fri, Oct 11, 2019 at 06:03:16AM -0700, Christoph Hellwig wrote: > > There is no point in applying extent size hints for always COW inodes, > > as we would just have to COW any extra allocation beyond the data > > actually written. > > > > Signed-off-by: Christoph Hellwig <hch@lst.de> > > Looks ok, I guess? > > By the way, what's the plan for always_cow inodes, seeing as it's still > only a debugging feature? Support for zoned devices and an O_ATOMIC-like mode that supports data integrity safe overwrites. I've found some time to spend on both lately, but the former might land on the list first.
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 18f4b262e61c..2e94deb4610a 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -55,6 +55,12 @@ xfs_extlen_t xfs_get_extsz_hint( struct xfs_inode *ip) { + /* + * No point in aligning allocations if we need to COW to actually + * write to them. + */ + if (xfs_is_always_cow_inode(ip)) + return 0; if ((ip->i_d.di_flags & XFS_DIFLAG_EXTSIZE) && ip->i_d.di_extsize) return ip->i_d.di_extsize; if (XFS_IS_REALTIME_INODE(ip))
There is no point in applying extent size hints for always COW inodes, as we would just have to COW any extra allocation beyond the data actually written. Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/xfs/xfs_inode.c | 6 ++++++ 1 file changed, 6 insertions(+)