From: Alex Elder Date: Fri, 7 Oct 2011 22:41:38 +0000 (+0000) Subject: limit OP_PUNCH_HOLE operations to the file size X-Git-Tag: v1.1.0~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f04cc0e5766831358773b693fd6a0b599807555e;p=xfstests-dev.git limit OP_PUNCH_HOLE operations to the file size Before punching a hole in a file, TRIM_OFF_LEN() calls TRIM_OFF_LEN() in order to make sure the offset and size used are in a reasonable range. But currently the range it's limited to is maxfilelen, which allows the offset (and therefore offset + len) to be beyond EOF. Later, do_punch_hole() ignores any request that starts beyond EOF, so we might as well limit requests to the file size. It appears that a hole punch request that starts within a file but whose length extends beyond it is treated simply as a hole punch up to EOF. So there's no harm in limiting the end of a hole punch request to the file size either. Therefore, use TRIM_OFF_LEN() to put both the the offset and length of a request within the file size for hole punch requests. Signed-off-by: Alex Elder Reviewed-by: Christoph Hellwig --- diff --git a/ltp/fsx.c b/ltp/fsx.c index 09cd5a79..b36c201e 100644 --- a/ltp/fsx.c +++ b/ltp/fsx.c @@ -1085,7 +1085,7 @@ test(void) break; case OP_PUNCH_HOLE: - TRIM_OFF_LEN(offset, size, maxfilelen); + TRIM_OFF_LEN(offset, size, file_size); do_punch_hole(offset, size); break; default: