aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2020-11-24 09:28:42 -0800
committerBrian Behlendorf <[email protected]>2020-12-23 14:35:00 -0800
commit7cf4cd8246beb511a287705b3fbbc0431f6256ba (patch)
tree061df29fe0cf97eaa06ce883b65668a600d30603
parent783be694f182c5ebc150cc10ad097512990814a0 (diff)
Remove incorrect assertion
Commit 85703f6 added a new ASSERT to zfs_write() as part of the cleanup which isn't correct in the case where multiple processes are concurrently extending a file. The `zp->z_size` is updated atomically while holding a range lock on only a portion of the file. Therefore, it's possible for the file size to increase after a same check is performed earlier in the loop causing this ASSERT to fail. The code itself handles this case correctly so only the invalid ASSERT needs to be removed. Reviewed-by: Brian Atkinson <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #11235
-rw-r--r--module/zfs/zfs_vnops.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/module/zfs/zfs_vnops.c b/module/zfs/zfs_vnops.c
index 2e3710751..f3c894cfd 100644
--- a/module/zfs/zfs_vnops.c
+++ b/module/zfs/zfs_vnops.c
@@ -467,7 +467,6 @@ zfs_write(znode_t *zp, uio_t *uio, int ioflag, cred_t *cr)
} else {
/* Implied by abuf != NULL: */
ASSERT3S(n, >=, max_blksz);
- ASSERT3S(woff, >=, zp->z_size);
ASSERT0(P2PHASE(woff, max_blksz));
/*
* We can simplify nbytes to MIN(n, max_blksz) since