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

Reply via email to