Ashwani Raina has posted comments on this change. ( http://gerrit.cloudera.org:8080/20894 )
Change subject: Fix CheckHolePunch for bigger than 4k blocks. ...................................................................... Patch Set 2: (1 comment) http://gerrit.cloudera.org:8080/#/c/20894/2/src/kudu/fs/dir_util.cc File src/kudu/fs/dir_util.cc: http://gerrit.cloudera.org:8080/#/c/20894/2/src/kudu/fs/dir_util.cc@a68 PS2, Line 68: > We use ioctl in case of xfs. (see Status PunchHole in env_posix.cc) Maybe I am missing something here. When PreAllocate (at line 92) is called, my understanding is that it calls fallocate irrespective of filesystem type. So, in your case, maybe you are getting non-zero error inside PreAllocate (which eventually returns Status::OK() anyway for EOPNOTSUPP and ENOSYS errnos). So, it proceeds further with checking of pre-punch file size and fails as expected. I am wondering when you set the kFileSize as multiple of block size on filesystem (i.e. 64K) instead of multiples of hard-coded 4K, does fallocate succeed in PreAllocate? On a side note, I was trying to run fallocate (on ext4) for non-aligned offset and length, it seemed to work. This is for the case when FALLOC_FL_KEEP_SIZE mode is set. Just trying to understand whether there is any difference in behaviour. -- To view, visit http://gerrit.cloudera.org:8080/20894 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib4af73f0aa25db674fe0a34355cecd27a0c68417 Gerrit-Change-Number: 20894 Gerrit-PatchSet: 2 Gerrit-Owner: Zoltan Martonka <[email protected]> Gerrit-Reviewer: Ashwani Raina <[email protected]> Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Wang Xixu <[email protected]> Gerrit-Reviewer: Zoltan Martonka <[email protected]> Gerrit-Comment-Date: Thu, 18 Jan 2024 10:54:54 +0000 Gerrit-HasComments: Yes
