Christoph Hellwig
54a4ef8af4
xfs: reject all unaligned direct writes to reflinked files
...
We currently fall back from direct to buffered writes if we detect a
remaining shared extent in the iomap_begin callback. But by the time
iomap_begin is called for the potentially unaligned end block we might
have already written most of the data to disk, which we'd now write
again using buffered I/O. To avoid this reject all writes to reflinked
files before starting I/O so that we are guaranteed to only write the
data once.
The alternative would be to unshare the unaligned start and/or end block
before doing the I/O. I think that's doable, and will actually be
required to support reflinks on DAX file system. But it will take a
little more time and I'd rather get rid of the double write ASAP.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Brian Foster <bfoster@redhat.com >
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com >
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com >
2017-02-06 17:47:46 -08:00
..
2016-12-24 11:46:01 -08:00
2016-12-09 16:45:04 +01:00
2016-12-24 11:46:01 -08:00
2016-12-17 19:16:12 -08:00
2016-12-22 11:25:24 +00:00
2016-12-24 11:46:01 -08:00
2017-01-27 12:41:46 -08:00
2017-01-18 17:58:45 +01:00
2016-12-24 11:46:01 -08:00
2016-12-09 16:45:04 +01:00
2016-12-24 11:46:01 -08:00
2016-12-31 00:47:05 -05:00
2016-12-25 17:21:23 +01:00
2016-12-09 16:45:04 +01:00
2016-12-24 11:46:01 -08:00
2016-12-10 14:25:19 -05:00
2017-01-30 16:32:25 -08:00
2017-01-30 16:32:25 -08:00
2017-01-12 07:58:32 -07:00
2017-01-13 17:20:47 +01:00
2016-12-25 17:21:22 +01:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-09 16:45:04 +01:00
2016-12-24 11:46:01 -08:00
2016-12-13 10:19:16 -08:00
2016-12-24 11:46:01 -08:00
2016-12-09 16:45:04 +01:00
2016-12-24 11:46:01 -08:00
2016-12-17 19:16:12 -08:00
2016-11-18 10:59:15 -05:00
2016-12-09 16:45:04 +01:00
2016-12-24 11:46:01 -08:00
2017-01-26 15:50:41 -05:00
2016-11-18 10:59:15 -05:00
2017-01-12 15:55:51 -05:00
2016-12-17 19:16:12 -08:00
2017-01-05 23:06:06 -08:00
2016-12-24 11:46:01 -08:00
2017-01-10 18:31:54 -08:00
2016-12-24 11:46:01 -08:00
2016-12-17 19:16:12 -08:00
2017-01-18 15:19:54 +01:00
2017-01-24 16:26:14 -08:00
2016-12-13 09:16:11 -08:00
2016-12-19 08:23:53 -08:00
2016-12-24 11:46:01 -08:00
2016-12-17 19:16:12 -08:00
2017-01-24 16:26:14 -08:00
2016-12-17 19:16:12 -08:00
2016-12-09 16:45:04 +01:00
2017-01-17 14:35:58 +01:00
2016-12-24 11:46:01 -08:00
2017-02-06 17:47:46 -08:00
2017-01-14 19:31:40 -05:00
2016-12-24 11:46:01 -08:00
2016-12-09 11:57:43 +01:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2017-01-14 19:32:40 -05:00
2017-01-24 07:55:53 -07:00
2017-01-02 09:35:14 -07:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2017-01-14 19:32:40 -05:00
2017-01-30 16:32:25 -08:00
2017-01-10 13:34:43 +13:00
2016-12-24 11:46:01 -08:00
2017-01-10 13:29:54 -07:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-05 19:01:16 -05:00
2016-12-24 11:46:01 -08:00
2016-12-12 18:55:08 -08:00
2017-01-30 16:32:25 -08:00
2016-12-16 11:02:54 +01:00
2017-01-30 16:32:25 -08:00
2017-01-24 16:26:14 -08:00
2017-01-10 13:34:55 +13:00
2016-12-24 11:46:01 -08:00
2016-12-14 23:48:11 -05:00
2016-12-03 15:55:01 -05:00
2016-12-03 20:51:35 -05:00
2016-11-04 14:34:47 -06:00
2016-12-24 11:46:01 -08:00
2017-01-10 13:34:43 +13:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-16 16:30:49 -05:00
2017-01-10 01:29:48 -05:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-21 10:59:34 -08:00
2016-12-24 11:46:01 -08:00
2016-12-05 19:03:49 -05:00
2016-11-30 08:38:07 +01:00
2016-12-25 17:21:22 +01:00
2017-01-24 16:26:14 -08:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00