* HFS/HFS+ maintainership action items @ 2025-04-21 21:52 Viacheslav Dubeyko 2025-04-22 2:43 ` Theodore Ts'o 2025-04-22 12:35 ` John Paul Adrian Glaubitz 0 siblings, 2 replies; 25+ messages in thread From: Viacheslav Dubeyko @ 2025-04-21 21:52 UTC (permalink / raw) To: glaubitz@physik.fu-berlin.de Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Adrian, I am trying to elaborate the HFS/HFS+ maintainership action items: (1) We need to prepare a Linux kernel tree fork to collect patches. (2) I think it needs to prepare the list of current known issues (TODO list). (3) Let me prepare environment and start to run xfstests for HFS/HFS+ (to check the current status). (4) Which use-cases do we need to consider for regular testing? Anything else? What am I missing? Thanks, Slava. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: HFS/HFS+ maintainership action items 2025-04-21 21:52 HFS/HFS+ maintainership action items Viacheslav Dubeyko @ 2025-04-22 2:43 ` Theodore Ts'o 2025-04-22 4:16 ` Darrick J. Wong 2025-04-22 7:20 ` John Paul Adrian Glaubitz 2025-04-22 12:35 ` John Paul Adrian Glaubitz 1 sibling, 2 replies; 25+ messages in thread From: Theodore Ts'o @ 2025-04-22 2:43 UTC (permalink / raw) To: Viacheslav Dubeyko Cc: glaubitz@physik.fu-berlin.de, linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com On Mon, Apr 21, 2025 at 09:52:14PM +0000, Viacheslav Dubeyko wrote: > Hi Adrian, > > I am trying to elaborate the HFS/HFS+ maintainership action items: > (1) We need to prepare a Linux kernel tree fork to collect patches. > (2) I think it needs to prepare the list of current known issues (TODO list). > (3) Let me prepare environment and start to run xfstests for HFS/HFS+ (to check One potential problem is that the userspace utilities to format, check, repair HFS/HFS+ utilities don't really exist. There is the HFS Utilities[1] which is packaged in Debian as hfsutils, but it only supports HFS, not HFS+, and it can only format an HFS file system; it doesn't have a fsck analog. This is going to very limit the ability to run xfstests for HFS or HFS+. [1] https://www.mars.org/home/rob/proj/hfs/ - Ted ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: HFS/HFS+ maintainership action items 2025-04-22 2:43 ` Theodore Ts'o @ 2025-04-22 4:16 ` Darrick J. Wong 2025-04-22 7:21 ` John Paul Adrian Glaubitz 2025-04-22 7:20 ` John Paul Adrian Glaubitz 1 sibling, 1 reply; 25+ messages in thread From: Darrick J. Wong @ 2025-04-22 4:16 UTC (permalink / raw) To: Theodore Ts'o Cc: Viacheslav Dubeyko, glaubitz@physik.fu-berlin.de, linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com On Mon, Apr 21, 2025 at 09:43:33PM -0500, Theodore Ts'o wrote: > On Mon, Apr 21, 2025 at 09:52:14PM +0000, Viacheslav Dubeyko wrote: > > Hi Adrian, > > > > I am trying to elaborate the HFS/HFS+ maintainership action items: > > (1) We need to prepare a Linux kernel tree fork to collect patches. > > (2) I think it needs to prepare the list of current known issues (TODO list). > > (3) Let me prepare environment and start to run xfstests for HFS/HFS+ (to check > > One potential problem is that the userspace utilities to format, > check, repair HFS/HFS+ utilities don't really exist. There is the HFS > Utilities[1] which is packaged in Debian as hfsutils, but it only > supports HFS, not HFS+, and it can only format an HFS file system; it > doesn't have a fsck analog. This is going to very limit the ability > to run xfstests for HFS or HFS+. > > [1] https://www.mars.org/home/rob/proj/hfs/ How about hfsprogs, it has mkfs and fsck tools. Though it /is/ APSL licensed... --D > - Ted > ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: HFS/HFS+ maintainership action items 2025-04-22 4:16 ` Darrick J. Wong @ 2025-04-22 7:21 ` John Paul Adrian Glaubitz 0 siblings, 0 replies; 25+ messages in thread From: John Paul Adrian Glaubitz @ 2025-04-22 7:21 UTC (permalink / raw) To: Darrick J. Wong, Theodore Ts'o Cc: Viacheslav Dubeyko, linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com On Mon, 2025-04-21 at 21:16 -0700, Darrick J. Wong wrote: > > One potential problem is that the userspace utilities to format, > > check, repair HFS/HFS+ utilities don't really exist. There is the HFS > > Utilities[1] which is packaged in Debian as hfsutils, but it only > > supports HFS, not HFS+, and it can only format an HFS file system; it > > doesn't have a fsck analog. This is going to very limit the ability > > to run xfstests for HFS or HFS+. > > > > [1] https://www.mars.org/home/rob/proj/hfs/ > > How about hfsprogs, it has mkfs and fsck tools. Though it /is/ APSL > licensed... That's what I use and maintain in Debian. I have been trying to reach out to Apple to get it relicensed under Apache or MIT but I unfortunately got a reply. Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: HFS/HFS+ maintainership action items 2025-04-22 2:43 ` Theodore Ts'o 2025-04-22 4:16 ` Darrick J. Wong @ 2025-04-22 7:20 ` John Paul Adrian Glaubitz 1 sibling, 0 replies; 25+ messages in thread From: John Paul Adrian Glaubitz @ 2025-04-22 7:20 UTC (permalink / raw) To: Theodore Ts'o, Viacheslav Dubeyko Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Ted, On Mon, 2025-04-21 at 21:43 -0500, Theodore Ts'o wrote: > On Mon, Apr 21, 2025 at 09:52:14PM +0000, Viacheslav Dubeyko wrote: > > Hi Adrian, > > > > I am trying to elaborate the HFS/HFS+ maintainership action items: > > (1) We need to prepare a Linux kernel tree fork to collect patches. > > (2) I think it needs to prepare the list of current known issues (TODO list). > > (3) Let me prepare environment and start to run xfstests for HFS/HFS+ (to check > > One potential problem is that the userspace utilities to format, > check, repair HFS/HFS+ utilities don't really exist. There is the HFS > Utilities[1] which is packaged in Debian as hfsutils, but it only > supports HFS, not HFS+, and it can only format an HFS file system; it > doesn't have a fsck analog. This is going to very limit the ability > to run xfstests for HFS or HFS+. There is actually hfsprogs from Apple themselves which supports both HFS and HFS+ works without any problems. I'm maintaining it in Debian [1] and openSUSE. It's available in Fedora as hfsplus-tools. I have hacked on it for a while, so I can also provide updated versions. In the future, I'm planning to split the package into a normal and -legacy version as Apple dropped legacy HFS support from the utility somewhere around version 500. Adrian > [1] https://tracker.debian.org/pkg/hfsprogs -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: HFS/HFS+ maintainership action items 2025-04-21 21:52 HFS/HFS+ maintainership action items Viacheslav Dubeyko 2025-04-22 2:43 ` Theodore Ts'o @ 2025-04-22 12:35 ` John Paul Adrian Glaubitz 2025-04-22 21:12 ` Viacheslav Dubeyko 1 sibling, 1 reply; 25+ messages in thread From: John Paul Adrian Glaubitz @ 2025-04-22 12:35 UTC (permalink / raw) To: Viacheslav Dubeyko Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Slava, On Mon, 2025-04-21 at 21:52 +0000, Viacheslav Dubeyko wrote: > I am trying to elaborate the HFS/HFS+ maintainership action items: > (1) We need to prepare a Linux kernel tree fork to collect patches. Yes. I suggest creating a tree on git.kernel.org. > (2) I think it needs to prepare the list of current known issues (TODO list). Shall we use the kernel wiki for that? I suggest starting with the collection of known CVEs as well as possible patches. I know of at least one CVE that Ubuntu has fixed locally. I can send an email to the author of that patch and ask them to send their patch upstream. From my memory, there are some occasional filesystem corruptions reported on HFS partitions which might be a result of a bug in the kernel driver. They can be easily fixed with fsck_hfs from hfsprogs though. > (3) Let me prepare environment and start to run xfstests for HFS/HFS+ (to check > the current status). I suggest a Debian VM for that as it has hfsprogs which allows creating both HFS and HFS+ filesystems. It's also easily possible to test on PowerPC inside QEMU if necessary. > (4) Which use-cases do we need to consider for regular testing? Definitely testing both legacy HFS and HFS+ with creating new filesystems, writing and reading random files from it as well as running fsck on these. I'm not a Linux kernel filesystem expert, so I don't know what the recommend tests for CI are, but I suggest everything that is commonly used, both with HFS and HFS+. > Anything else? What am I missing? No, I think that should get us going for the time being. Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 ^ permalink raw reply [flat|nested] 25+ messages in thread
* RE: HFS/HFS+ maintainership action items 2025-04-22 12:35 ` John Paul Adrian Glaubitz @ 2025-04-22 21:12 ` Viacheslav Dubeyko 2025-04-22 21:47 ` John Paul Adrian Glaubitz 0 siblings, 1 reply; 25+ messages in thread From: Viacheslav Dubeyko @ 2025-04-22 21:12 UTC (permalink / raw) To: glaubitz@physik.fu-berlin.de Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Adrian, On Tue, 2025-04-22 at 14:35 +0200, John Paul Adrian Glaubitz wrote: > Hi Slava, > > On Mon, 2025-04-21 at 21:52 +0000, Viacheslav Dubeyko wrote: > > I am trying to elaborate the HFS/HFS+ maintainership action items: > > (1) We need to prepare a Linux kernel tree fork to collect patches. > > Yes. I suggest creating a tree on git.kernel.org. > Makes sense. Whom do we need to ask to make it happened? > > (2) I think it needs to prepare the list of current known issues (TODO list). > > Shall we use the kernel wiki for that? I suggest starting with the collection > of known CVEs as well as possible patches. I know of at least one CVE that > Ubuntu has fixed locally. > We can do this, but, as far as I can see, the kernel wiki's pages are marked as obsolete content. Also, Bugzilla could be more suitable for this. And, yes, we need to collect all known CVEs somewhere. > I can send an email to the author of that patch and ask them to send their > patch upstream. > Let's prepare the kernel tree and WiKi or/and Bugzilla at first. > From my memory, there are some occasional filesystem corruptions reported > on HFS partitions which might be a result of a bug in the kernel driver. > > They can be easily fixed with fsck_hfs from hfsprogs though. > Yeah, I need to check the email list for the issue reports. Even if some issues can be fixed by the fsck_hfs, potentially, some issues could be harmful enough. So, it makes sense to fix it. > > (3) Let me prepare environment and start to run xfstests for HFS/HFS+ (to check > > the current status). > > I suggest a Debian VM for that as it has hfsprogs which allows creating both > HFS and HFS+ filesystems. It's also easily possible to test on PowerPC inside > QEMU if necessary. > Sounds good! Do you mean a particular link with ready-made Debian VM images? > > (4) Which use-cases do we need to consider for regular testing? > > Definitely testing both legacy HFS and HFS+ with creating new filesystems, writing > and reading random files from it as well as running fsck on these. > > I'm not a Linux kernel filesystem expert, so I don't know what the recommend tests > for CI are, but I suggest everything that is commonly used, both with HFS and HFS+. > Makes sense. First of all, xfstests is a good tool for file system's functionality regression testing. Probably, I need to take a deeper look into fstests, finally. Maybe, we need to consider fio tool for the testing too. I think that it makes sense to check all supported logical block sizes and some set of volume sizes. I need to double check the HFS/HFS+ features, and we will need to test that supported features are not broken. And, of course, we will need to be sure that file system volume is consistent after been used by x86 and PowerPC platforms. So, let me spend some time for the testing strategy elaboration. > Thanks, Slava. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: HFS/HFS+ maintainership action items 2025-04-22 21:12 ` Viacheslav Dubeyko @ 2025-04-22 21:47 ` John Paul Adrian Glaubitz 2025-04-22 21:48 ` John Paul Adrian Glaubitz 0 siblings, 1 reply; 25+ messages in thread From: John Paul Adrian Glaubitz @ 2025-04-22 21:47 UTC (permalink / raw) To: Viacheslav Dubeyko Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Slava, On Tue, 2025-04-22 at 21:12 +0000, Viacheslav Dubeyko wrote: > On Tue, 2025-04-22 at 14:35 +0200, John Paul Adrian Glaubitz wrote: > > Hi Slava, > > > > On Mon, 2025-04-21 at 21:52 +0000, Viacheslav Dubeyko wrote: > > > I am trying to elaborate the HFS/HFS+ maintainership action items: > > > (1) We need to prepare a Linux kernel tree fork to collect patches. > > > > Yes. I suggest creating a tree on git.kernel.org. > > > > Makes sense. Whom do we need to ask to make it happened? Reducing the discussion on the repository for now. To get a repository on git.kernel.org, you need to have an entry in MAINTAINERS. Thus, first we would need to get ourselves added to MAINTAINERS for the hfs code. I have already an entry there as I'm maintaining arch/sh. You can just send a patch to the LKML, get me and you added to MAINTAINERS, see [1] and [2] for an example how to do that. Once Linus has merged your patch, you can request a kernel.org and git tree here [3]. Adrian > [1] https://lore.kernel.org/lkml/87v8k7rrnf.wl-ysato@users.sourceforge.jp/T/ > [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/MAINTAINERS?id=80510b63f7b6bdd30e07b3a42115d0a324e20cd6 > [3] https://korg.docs.kernel.org/accounts.html -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: HFS/HFS+ maintainership action items 2025-04-22 21:47 ` John Paul Adrian Glaubitz @ 2025-04-22 21:48 ` John Paul Adrian Glaubitz 2025-04-25 1:06 ` Viacheslav Dubeyko 0 siblings, 1 reply; 25+ messages in thread From: John Paul Adrian Glaubitz @ 2025-04-22 21:48 UTC (permalink / raw) To: Viacheslav Dubeyko Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Slava, On Tue, 2025-04-22 at 23:47 +0200, John Paul Adrian Glaubitz wrote: > Reducing the discussion on the repository for now. > > To get a repository on git.kernel.org, you need to have an entry in MAINTAINERS. > Thus, first we would need to get ourselves added to MAINTAINERS for the hfs code. > > I have already an entry there as I'm maintaining arch/sh. > > You can just send a patch to the LKML, get me and you added to MAINTAINERS, see > [1] and [2] for an example how to do that. Once Linus has merged your patch, you > can request a kernel.org and git tree here [3]. > > Adrian > > > [1] https://lore.kernel.org/lkml/87v8k7rrnf.wl-ysato@users.sourceforge.jp/T/ > > [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/MAINTAINERS?id=80510b63f7b6bdd30e07b3a42115d0a324e20cd6 > > [3] https://korg.docs.kernel.org/accounts.html Please see also: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/MAINTAINERS?id=bf8f5de17442bba5f811e7e724980730e079ee11 Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 ^ permalink raw reply [flat|nested] 25+ messages in thread
* RE: HFS/HFS+ maintainership action items 2025-04-22 21:48 ` John Paul Adrian Glaubitz @ 2025-04-25 1:06 ` Viacheslav Dubeyko 2025-04-25 10:17 ` 回复: " 李扬韬 0 siblings, 1 reply; 25+ messages in thread From: Viacheslav Dubeyko @ 2025-04-25 1:06 UTC (permalink / raw) To: glaubitz@physik.fu-berlin.de, frank.li@vivo.com Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Adrian, Yangtao, As far as I can see, xfstests runs have such results: HFS case sudo ./check -g quick FSTYP -- hfs PLATFORM -- Linux/x86_64 hfsplus-testing-0001 6.15.0-rc2+ #2 SMP PREEMPT_DYNAMIC Mon Apr 21 15:25:18 PDT 2025 MKFS_OPTIONS -- /dev/sda2 MOUNT_OPTIONS -- /dev/sda2 /mnt/scratch <skipped> Failed 100 of 614 tests Failed test cases: generic/001 generic/003 generic/006 generic/007 generic/011 generic/013 generic/028 generic/034 generic/035 generic/073 generic/075 generic/080 generic/084 generic/087 generic/088 generic/091 generic/095 generic/101 generic/112 generic/113 generic/120 generic/124 generic/131 generic/198 generic/207 generic/210 generic/211 generic/212 generic/215 generic/221 generic/245 generic/246 generic/247 generic/248 generic/249 generic/257 generic/258 generic/263 generic/308 generic/309 generic/313 generic/321 generic/322 generic/335 generic/338 generic/341 generic/342 generic/362 generic/364 generic/376 generic/377 generic/394 generic/409 generic/410 generic/411 generic/412 generic/428 generic/437 generic/443 generic/448 generic/451 generic/452 generic/471 generic/478 generic/481 generic/490 generic/504 generic/510 generic/532 generic/534 generic/535 generic/547 generic/552 generic/557 generic/563 generic/571 generic/591 generic/609 generic/632 generic/637 generic/638 generic/639 generic/640 generic/647 generic/676 generic/678 generic/704 generic/706 generic/708 generic/729 generic/730 generic/731 generic/732 generic/736 generic/740 generic/741 generic/755 generic/759 generic/760 generic/763 generic/764 HFS+ case sudo ./check -g quick FSTYP -- hfsplus PLATFORM -- Linux/x86_64 hfsplus-testing-0001 6.15.0-rc2+ #2 SMP PREEMPT_DYNAMIC Mon Apr 21 15:25:18 PDT 2025 MKFS_OPTIONS -- /dev/sda2 MOUNT_OPTIONS -- /dev/sda2 /mnt/scratch <skipped> Failed 142 of 614 tests Failed test cases: generic/003 generic/013 generic/020 generic/023 generic/024 generic/028 generic/034 generic/035 generic/039 generic/040 generic/041 generic/056 generic/057 generic/062 generic/065 generic/066 generic/067 generic/069 generic/070 generic/073 generic/075 generic/079 generic/080 generic/087 generic/088 generic/090 generic/091 generic/095 generic/097 generic/101 generic/104 generic/106 generic/107 generic/112 generic/113 generic/124 generic/126 generic/131 generic/184 generic/198 generic/207 generic/210 generic/211 generic/212 generic/215 generic/221 generic/236 generic/245 generic/246 generic/247 generic/248 generic/249 generic/257 generic/258 generic/263 generic/306 generic/308 generic/309 generic/313 generic/321 generic/322 generic/335 generic/336 generic/337 generic/341 generic/342 generic/343 generic/348 generic/360 generic/362 generic/364 generic/376 generic/377 generic/394 generic/409 generic/410 generic/411 generic/412 generic/423 generic/424 generic/428 generic/437 generic/443 generic/448 generic/450 generic/451 generic/471 generic/478 generic/479 generic/480 generic/481 generic/489 generic/490 generic/498 generic/502 generic/504 generic/510 generic/523 generic/525 generic/526 generic/527 generic/528 generic/532 generic/533 generic/534 generic/535 generic/538 generic/545 generic/547 generic/552 generic/555 generic/557 generic/563 generic/571 generic/591 generic/609 generic/632 generic/637 generic/638 generic/639 generic/640 generic/647 generic/676 generic/678 generic/690 generic/704 generic/706 generic/708 generic/728 generic/729 generic/730 generic/731 generic/732 generic/736 generic/740 generic/741 generic/755 generic/759 generic/760 generic/763 generic/764 So, we need at first to check these issues. And it's a lot of work. :) Thanks, Slava. ^ permalink raw reply [flat|nested] 25+ messages in thread
* 回复: HFS/HFS+ maintainership action items 2025-04-25 1:06 ` Viacheslav Dubeyko @ 2025-04-25 10:17 ` 李扬韬 2025-04-25 11:32 ` John Paul Adrian Glaubitz 2025-04-25 18:02 ` Viacheslav Dubeyko 0 siblings, 2 replies; 25+ messages in thread From: 李扬韬 @ 2025-04-25 10:17 UTC (permalink / raw) To: Viacheslav Dubeyko, glaubitz@physik.fu-berlin.de Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Slava, > So, we need at first to check these issues. And it's a lot of work. :) That's a lot of test failures, probably many for the same reason. Are there any changes to xfstest? Has this been sent to the fstest mailing list? I'm also planning to start deploying a local xfstest environment. : ) MBR, Yangtao ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: 回复: HFS/HFS+ maintainership action items 2025-04-25 10:17 ` 回复: " 李扬韬 @ 2025-04-25 11:32 ` John Paul Adrian Glaubitz 2025-04-25 11:39 ` 回复: " 李扬韬 2025-04-25 18:02 ` Viacheslav Dubeyko 1 sibling, 1 reply; 25+ messages in thread From: John Paul Adrian Glaubitz @ 2025-04-25 11:32 UTC (permalink / raw) To: 李扬韬, Viacheslav Dubeyko Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Slava and Yangtao, On Fri, 2025-04-25 at 10:17 +0000, 李扬韬 wrote: > > So, we need at first to check these issues. And it's a lot of work. :) > > That's a lot of test failures, probably many for the same reason. I agree, there is probably one bug causing most of these failures. > Are there any changes to xfstest? Has this been sent to the fstest mailing list? > > I'm also planning to start deploying a local xfstest environment. : ) Would you guys mind help me create an xfstest test environment as well? Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 ^ permalink raw reply [flat|nested] 25+ messages in thread
* 回复: 回复: HFS/HFS+ maintainership action items 2025-04-25 11:32 ` John Paul Adrian Glaubitz @ 2025-04-25 11:39 ` 李扬韬 2025-04-25 18:25 ` Viacheslav Dubeyko 0 siblings, 1 reply; 25+ messages in thread From: 李扬韬 @ 2025-04-25 11:39 UTC (permalink / raw) To: John Paul Adrian Glaubitz, Viacheslav Dubeyko Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Adrian, > Would you guys mind help me create an xfstest test environment as well? I am currently running arch linux on wsl 2 in a windows laptop. I'm following the README steps here (ing, not sure if I'll run into problems). https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git/tree/README?h=for-next git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git Maybe slava and some other additions too? Thx, Yangtao ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: 回复: 回复: HFS/HFS+ maintainership action items 2025-04-25 11:39 ` 回复: " 李扬韬 @ 2025-04-25 18:25 ` Viacheslav Dubeyko 2025-04-25 19:36 ` 回复: " 李扬韬 0 siblings, 1 reply; 25+ messages in thread From: Viacheslav Dubeyko @ 2025-04-25 18:25 UTC (permalink / raw) To: frank.li@vivo.com, glaubitz@physik.fu-berlin.de Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com On Fri, 2025-04-25 at 11:39 +0000, 李扬韬 wrote: > Hi Adrian, > > > Would you guys mind help me create an xfstest test environment as well? > > I am currently running arch linux on wsl 2 in a windows laptop. > > I'm following the README steps here (ing, not sure if I'll run into problems). > > https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git/tree/README?h=for-next > git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git > > Maybe slava and some other additions too? Yes, I used this way to prepare the xfstests environment. So, the main steps: (1) Clone git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git (2) Install all necessary packages + hfsprog tools. This step could depends from a particular environment. (3) Do make and make install. Usually, it works well but last time I had some issues that I managed to resolve. (4) Prepare the local.config file: HFS case: export TEST_DEV=/dev/sda1 export TEST_DIR=/mnt/test export SCRATCH_DEV=/dev/sda2 export SCRATCH_MNT=/mnt/scratch export FSTYP=hfs HFS+ case: export TEST_DEV=/dev/sda1 export TEST_DIR=/mnt/test export SCRATCH_DEV=/dev/sda2 export SCRATCH_MNT=/mnt/scratch export FSTYP=hfsplus (5) Run the check command: Group test (for example quick group): sudo ./check -g quick Particular test: sudo ./check generic/001 Mostly, these steps should prepare the xfstests environment. Of course, it could run on physical machine or inside of virtual machine. It needs to prepare the two partitions or drives (test and scratch) for testing. If you will have some troubles, please, let me know and I will try to help. :) Thanks, Slava. ^ permalink raw reply [flat|nested] 25+ messages in thread
* 回复: 回复: 回复: HFS/HFS+ maintainership action items 2025-04-25 18:25 ` Viacheslav Dubeyko @ 2025-04-25 19:36 ` 李扬韬 2025-04-25 19:44 ` Viacheslav Dubeyko 2025-04-25 20:51 ` John Paul Adrian Glaubitz 0 siblings, 2 replies; 25+ messages in thread From: 李扬韬 @ 2025-04-25 19:36 UTC (permalink / raw) To: Viacheslav Dubeyko, glaubitz@physik.fu-berlin.de Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Slava, > If you will have some troubles, please, let me know and I will try to help. :) There are some strange issues indeed,. : ) One has been solved, and the other may be solved by changing the environment. 1). Header files installed, but linux/blkdev.h is still missing. Currently I copied the header files manually and it works. /usr/include/liburing/compat.h:11:10: fatal error: linux/blkdev.h: No such file or directory 11 | #include <linux/blkdev.h> | ^~~~~~~~~~~~~~~~ compilation terminated. make[3]: *** [Makefile:51: fsstress] Error 1 make[2]: *** [include/buildrules:31: ltp] Error 2 make[1]: *** [Makefile:65: default] Error 2 make: *** [Makefile:63: default] Error 2 2). Arch Linux has the hfsprogs installation package, but after installation there is only mkfs.hfsplus, missing mkfs.hfs I think if I switch to Ubuntu or something, this problem should go away. I used the following command to test and got these failure cases. sudo ./check -g quick Failures: generic/001 generic/002 generic/003 generic/005 generic/006 generic/007 generic/011 generic/013 generic/020 generic/023 generic/024 generic/028 generic/029 generic/030 generic/035 generic/037 generic/062 generic/067 generic/069 generic/070 generic/075 generic/076 generic/079 generic/080 generic/084 generic/087 generic/088 generic/091 generic/095 generic/097 generic/098 generic/112 generic/113 generic/117 generic/120 generic/124 generic/126 generic/131 generic/135 generic/141 generic/169 generic/184 generic/198 generic/207 generic/210 generic/211 generic/212 generic/215 generic/221 generic/236 generic/245 generic/246 generic/247 generic/248 generic/249 generic/257 generic/258 generic/263 generic/294 generic/306 generic/308 generic/309 generic/313 generic/337 generic/338 generic/346 generic/360 generic/362 generic/364 generic/366 generic/377 generic/393 generic/394 generic/401 generic/403 generic/406 generic/409 generic/410 generic/411 generic/412 generic/423 generic/424 generic/428 generic/437 generic/441 generic/443 generic/448 generic/450 generic/451 generic/452 generic/460 generic/465 generic/471 generic/472 generic/478 generic/484 generic/486 generic/490 generic/504 generic/519 generic/523 generic/524 generic/525 generic/528 generic/532 generic/533 generic/538 generic/545 generic/555 generic/571 generic/591 generic/604 generic/609 generic/611 generic/615 generic/618 generic/632 generic/634 generic/636 generic/637 generic/638 generic/639 generic/647 generic/676 generic/706 generic/708 generic/728 generic/729 generic/732 generic/736 generic/740 generic/755 generic/759 generic/760 generic/761 generic/763 Failed 136 of 614 tests I have to go to bed right now. : ) Thanks, Yangtao ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: 回复: 回复: 回复: HFS/HFS+ maintainership action items 2025-04-25 19:36 ` 回复: " 李扬韬 @ 2025-04-25 19:44 ` Viacheslav Dubeyko 2025-04-26 6:17 ` 回复: " 李扬韬 2025-04-25 20:51 ` John Paul Adrian Glaubitz 1 sibling, 1 reply; 25+ messages in thread From: Viacheslav Dubeyko @ 2025-04-25 19:44 UTC (permalink / raw) To: frank.li@vivo.com, glaubitz@physik.fu-berlin.de Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Yangtao, On Fri, 2025-04-25 at 19:36 +0000, 李扬韬 wrote: > Hi Slava, > > > If you will have some troubles, please, let me know and I will try to help. :) > > There are some strange issues indeed,. : ) > > One has been solved, and the other may be solved by changing the environment. > > 1). Header files installed, but linux/blkdev.h is still missing. > > Currently I copied the header files manually and it works. > > /usr/include/liburing/compat.h:11:10: fatal error: linux/blkdev.h: No such file or directory > 11 | #include <linux/blkdev.h> > | ^~~~~~~~~~~~~~~~ > compilation terminated. > make[3]: *** [Makefile:51: fsstress] Error 1 > make[2]: *** [include/buildrules:31: ltp] Error 2 > make[1]: *** [Makefile:65: default] Error 2 > make: *** [Makefile:63: default] Error 2 > Do you have libblkid-dev installed? > 2). Arch Linux has the hfsprogs installation package, but after installation there is only mkfs.hfsplus, missing mkfs.hfs > As far as I know, you need to use -h option to create HFS volume: usage: mkfs.hfsplus [-N [partition-size]] [hfsplus-options] special-device options: -h create an HFS format filesystem (HFS Plus is the default) -N do not create file system, just print out parameters -s use case-sensitive filenames (default is case-insensitive) -w add a HFS wrapper (i.e. Native Mac OS 9 bootable) where hfsplus-options are: -J [journal-size] make this HFS+ volume journaled -D journal-dev use 'journal-dev' for an external journal -G group-id (for root directory) -U user-id (for root directory) -M octal access-mask (for root directory) -b allocation block size (4096 optimal) -c clump size list (comma separated) a=blocks (attributes file) b=blocks (bitmap file) c=blocks (catalog file) d=blocks (user data fork) e=blocks (extents file) r=blocks (user resource fork) -i starting catalog node id -n b-tree node size list (comma separated) e=size (extents b-tree) c=size (catalog b-tree) a=size (attributes b-tree) -v volume name (in ascii or UTF-8) examples: mkfs.hfsplus -v Untitled /dev/rdisk0s7 mkfs.hfsplus -v Untitled -n c=4096,e=1024 /dev/rdisk0s7 mkfs.hfsplus -v Untitled -c b=64,c=1024 /dev/rdisk0s7 > I think if I switch to Ubuntu or something, this problem should go away. > > I used the following command to test and got these failure cases. > > sudo ./check -g quick > > Failures: generic/001 generic/002 generic/003 generic/005 generic/006 generic/007 generic/011 generic/013 generic/020 generic/023 generic/024 generic/028 generic/029 generic/030 generic/035 generic/037 generic/062 generic/067 generic/069 generic/070 generic/075 generic/076 generic/079 generic/080 generic/084 generic/087 generic/088 generic/091 generic/095 generic/097 generic/098 generic/112 generic/113 generic/117 generic/120 generic/124 generic/126 generic/131 generic/135 generic/141 generic/169 generic/184 generic/198 generic/207 generic/210 generic/211 generic/212 generic/215 generic/221 generic/236 generic/245 generic/246 generic/247 generic/248 generic/249 generic/257 generic/258 generic/263 generic/294 generic/306 generic/308 generic/309 generic/313 generic/337 generic/338 generic/346 generic/360 generic/362 generic/364 generic/366 generic/377 generic/393 generic/394 generic/401 generic/403 generic/406 generic/409 generic/410 generic/411 generic/412 generic/423 generic/424 generic/428 generic/437 generic/441 generic/443 generic/448 generic/450 generic/451 generic/452 generic/460 generic/465 generic/471 generic/472 generic/478 generic/484 generic/486 generic/490 generic/504 generic/519 generic/523 generic/524 generic/525 generic/528 generic/532 generic/533 generic/538 generic/545 generic/555 generic/571 generic/591 generic/604 generic/609 generic/611 generic/615 generic/618 generic/632 generic/634 generic/636 generic/637 generic/638 generic/639 generic/647 generic/676 generic/706 generic/708 generic/728 generic/729 generic/732 generic/736 generic/740 generic/755 generic/759 generic/760 generic/761 generic/763 > Failed 136 of 614 tests > Yeah, it is reproducible. Thanks, Slava. ^ permalink raw reply [flat|nested] 25+ messages in thread
* 回复: 回复: 回复: 回复: HFS/HFS+ maintainership action items 2025-04-25 19:44 ` Viacheslav Dubeyko @ 2025-04-26 6:17 ` 李扬韬 2025-04-26 6:59 ` John Paul Adrian Glaubitz 2025-04-27 20:28 ` Viacheslav Dubeyko 0 siblings, 2 replies; 25+ messages in thread From: 李扬韬 @ 2025-04-26 6:17 UTC (permalink / raw) To: Viacheslav Dubeyko, glaubitz@physik.fu-berlin.de Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Slava and Adrian, > Do you have libblkid-dev installed? Arch Linux doesn't seem to have this package. Anyway, since it works now, I think I can ignore this problem. > As far as I know, you need to use -h option to create HFS volume: This seems to be the point mentioned by Adrian, which is caused by the hfsprogs code removing mkfs.hfs. > I am also working on creating a patch set that all Linux distributions can use on top of Apple's vanilla upstream sources. The current WIP can be found in [3]. Adrian, Would you mind adding a branch that supports mkfs.hfs in your git repository now? Maybe the hfsprogs-related code will be worth rewriting in the future, but this is probably not the focus at the moment (at least for me). I plan on looking at a few hfsplus failures first, or if there is something else planned I'll go for that too. MBR, Yangtao ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: 回复: 回复: 回复: 回复: HFS/HFS+ maintainership action items 2025-04-26 6:17 ` 回复: " 李扬韬 @ 2025-04-26 6:59 ` John Paul Adrian Glaubitz 2025-04-27 20:28 ` Viacheslav Dubeyko 1 sibling, 0 replies; 25+ messages in thread From: John Paul Adrian Glaubitz @ 2025-04-26 6:59 UTC (permalink / raw) To: 李扬韬, Viacheslav Dubeyko Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Yangtao, On Sat, 2025-04-26 at 06:17 +0000, 李扬韬 wrote: > > I am also working on creating a patch set that all Linux distributions can use on top of > > Apple's vanilla upstream sources. The current WIP can be found in [3]. > > Adrian, Would you mind adding a branch that supports mkfs.hfs in your git repository now? Yes, I can do that. Will let you know once that's ready. Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: 回复: 回复: 回复: 回复: HFS/HFS+ maintainership action items 2025-04-26 6:17 ` 回复: " 李扬韬 2025-04-26 6:59 ` John Paul Adrian Glaubitz @ 2025-04-27 20:28 ` Viacheslav Dubeyko 2025-05-02 3:01 ` Theodore Ts'o 1 sibling, 1 reply; 25+ messages in thread From: Viacheslav Dubeyko @ 2025-04-27 20:28 UTC (permalink / raw) To: frank.li@vivo.com, glaubitz@physik.fu-berlin.de Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com On Sat, 2025-04-26 at 06:17 +0000, 李扬韬 wrote: > Hi Slava and Adrian, > I plan on looking at a few hfsplus failures first, or if there is something else planned I'll go for that too. > Sounds good! I think I can share some resources [1, 2] if you need to take a deeper look into HFS/HFS+ on-disk layout. I already started to take a look into HFS issues. Currently, I am investigating generic/001 case. fsck.hfs -d -n ./test-image.bin ** ./test-image.bin (NO WRITE) Using cacheBlockSize=32K cacheTotalBlock=1024 cacheSize=32768K. Executing fsck_hfs (version 540.1-Linux). ** Checking HFS volume. The volume name is untitled ** Checking extents overflow file. ** Checking catalog file. Unused node is not erased (node = 2) Unused node is not erased (node = 4) Unused node is not erased (node = 5) Unused node is not erased (node = 6) Unused node is not erased (node = 7) Unused node is not erased (node = 8) Unused node is not erased (node = 9) Unused node is not erased (node = 10) Unused node is not erased (node = 11) Unused node is not erased (node = 12) Unused node is not erased (node = 13) Unused node is not erased (node = 14) Unused node is not erased (node = 16) Unused node is not erased (node = 17) Unused node is not erased (node = 18) Unused node is not erased (node = 19) Unused node is not erased (node = 20) Unused node is not erased (node = 21) Unused node is not erased (node = 22) Unused node is not erased (node = 23) Unused node is not erased (node = 24) Unused node is not erased (node = 25) Unused node is not erased (node = 26) Unused node is not erased (node = 27) Unused node is not erased (node = 28) Unused node is not erased (node = 29) Unused node is not erased (node = 30) Unused node is not erased (node = 31) Unused node is not erased (node = 32) Unused node is not erased (node = 33) Unused node is not erased (node = 34) Unused node is not erased (node = 35) Unused node is not erased (node = 36) Unused node is not erased (node = 37) Unused node is not erased (node = 38) Unused node is not erased (node = 39) Unused node is not erased (node = 40) Unused node is not erased (node = 41) Unused node is not erased (node = 42) Unused node is not erased (node = 43) Unused node is not erased (node = 44) Unused node is not erased (node = 45) Unused node is not erased (node = 46) Unused node is not erased (node = 47) Unused node is not erased (node = 48) Unused node is not erased (node = 49) Unused node is not erased (node = 50) Unused node is not erased (node = 51) Unused node is not erased (node = 52) Unused node is not erased (node = 53) Unused node is not erased (node = 54) Unused node is not erased (node = 55) Unused node is not erased (node = 56) Unused node is not erased (node = 57) Unused node is not erased (node = 58) Unused node is not erased (node = 59) Unused node is not erased (node = 60) Unused node is not erased (node = 61) Unused node is not erased (node = 62) Unused node is not erased (node = 63) Unused node is not erased (node = 64) Unused node is not erased (node = 65) Unused node is not erased (node = 66) Unused node is not erased (node = 67) Unused node is not erased (node = 68) Unused node is not erased (node = 69) Unused node is not erased (node = 70) Unused node is not erased (node = 71) Unused node is not erased (node = 72) Unused node is not erased (node = 73) Unused node is not erased (node = 74) Unused node is not erased (node = 75) Unused node is not erased (node = 76) Unused node is not erased (node = 77) Unused node is not erased (node = 78) Unused node is not erased (node = 79) Unused node is not erased (node = 80) Unused node is not erased (node = 81) Unused node is not erased (node = 82) Unused node is not erased (node = 83) Unused node is not erased (node = 84) Unused node is not erased (node = 85) Unused node is not erased (node = 86) Unused node is not erased (node = 87) Unused node is not erased (node = 88) Unused node is not erased (node = 89) Unused node is not erased (node = 90) Unused node is not erased (node = 91) Unused node is not erased (node = 92) Unused node is not erased (node = 93) Unused node is not erased (node = 95) Unused node is not erased (node = 96) Unused node is not erased (node = 97) Unused node is not erased (node = 98) Unused node is not erased (node = 99) Unused node is not erased (node = 100) Unused node is not erased (node = 101) Unused node is not erased (node = 102) Unused node is not erased (node = 103) Unused node is not erased (node = 104) Unused node is not erased (node = 105) Unused node is not erased (node = 106) Unused node is not erased (node = 107) Unused node is not erased (node = 108) Unused node is not erased (node = 109) Unused node is not erased (node = 110) Unused node is not erased (node = 111) Unused node is not erased (node = 112) Unused node is not erased (node = 113) Unused node is not erased (node = 114) Unused node is not erased (node = 115) Unused node is not erased (node = 116) Unused node is not erased (node = 117) Unused node is not erased (node = 118) Unused node is not erased (node = 119) Unused node is not erased (node = 120) Unused node is not erased (node = 121) Unused node is not erased (node = 122) Unused node is not erased (node = 123) Unused node is not erased (node = 124) Unused node is not erased (node = 125) Unused node is not erased (node = 126) Unused node is not erased (node = 127) Unused node is not erased (node = 128) Unused node is not erased (node = 129) Unused node is not erased (node = 130) Unused node is not erased (node = 131) Unused node is not erased (node = 132) Unused node is not erased (node = 133) Unused node is not erased (node = 134) Unused node is not erased (node = 135) Unused node is not erased (node = 136) Unused node is not erased (node = 137) Unused node is not erased (node = 138) Unused node is not erased (node = 139) Unused node is not erased (node = 140) Unused node is not erased (node = 141) Unused node is not erased (node = 142) Unused node is not erased (node = 143) Unused node is not erased (node = 144) Unused node is not erased (node = 145) Unused node is not erased (node = 146) Unused node is not erased (node = 147) Unused node is not erased (node = 148) Unused node is not erased (node = 149) Unused node is not erased (node = 150) Unused node is not erased (node = 151) Unused node is not erased (node = 152) Unused node is not erased (node = 153) Unused node is not erased (node = 154) Unused node is not erased (node = 155) Unused node is not erased (node = 156) Unused node is not erased (node = 157) Unused node is not erased (node = 158) Unused node is not erased (node = 159) Unused node is not erased (node = 160) Unused node is not erased (node = 161) Unused node is not erased (node = 162) Unused node is not erased (node = 163) Unused node is not erased (node = 164) Unused node is not erased (node = 165) Unused node is not erased (node = 166) Unused node is not erased (node = 167) Unused node is not erased (node = 168) Unused node is not erased (node = 169) Unused node is not erased (node = 170) Unused node is not erased (node = 171) Unused node is not erased (node = 172) Unused node is not erased (node = 173) Unused node is not erased (node = 174) Unused node is not erased (node = 175) Unused node is not erased (node = 176) Unused node is not erased (node = 177) Unused node is not erased (node = 178) Unused node is not erased (node = 179) Unused node is not erased (node = 180) Unused node is not erased (node = 181) Unused node is not erased (node = 182) Unused node is not erased (node = 183) Unused node is not erased (node = 184) Unused node is not erased (node = 185) Unused node is not erased (node = 186) Unused node is not erased (node = 187) Unused node is not erased (node = 188) Unused node is not erased (node = 189) Unused node is not erased (node = 190) Unused node is not erased (node = 191) Unused node is not erased (node = 192) Unused node is not erased (node = 193) Unused node is not erased (node = 194) Unused node is not erased (node = 195) Unused node is not erased (node = 196) Unused node is not erased (node = 197) Unused node is not erased (node = 198) Unused node is not erased (node = 199) Unused node is not erased (node = 200) Unused node is not erased (node = 201) Unused node is not erased (node = 202) Unused node is not erased (node = 203) Unused node is not erased (node = 204) Unused node is not erased (node = 205) Unused node is not erased (node = 206) Unused node is not erased (node = 207) Unused node is not erased (node = 208) Unused node is not erased (node = 209) Unused node is not erased (node = 210) Unused node is not erased (node = 211) Unused node is not erased (node = 212) Unused node is not erased (node = 213) Unused node is not erased (node = 214) Unused node is not erased (node = 215) Unused node is not erased (node = 216) Unused node is not erased (node = 217) Unused node is not erased (node = 218) Unused node is not erased (node = 219) Unused node is not erased (node = 220) Unused node is not erased (node = 221) Unused node is not erased (node = 222) Unused node is not erased (node = 223) Unused node is not erased (node = 224) Unused node is not erased (node = 225) Unused node is not erased (node = 226) Unused node is not erased (node = 227) Unused node is not erased (node = 228) Unused node is not erased (node = 229) Unused node is not erased (node = 230) Unused node is not erased (node = 231) Unused node is not erased (node = 232) Unused node is not erased (node = 233) Unused node is not erased (node = 234) Unused node is not erased (node = 235) Unused node is not erased (node = 236) Unused node is not erased (node = 237) Unused node is not erased (node = 238) Unused node is not erased (node = 239) Unused node is not erased (node = 240) Unused node is not erased (node = 241) Unused node is not erased (node = 242) Unused node is not erased (node = 243) Unused node is not erased (node = 244) Unused node is not erased (node = 245) Unused node is not erased (node = 246) Unused node is not erased (node = 247) Unused node is not erased (node = 248) Unused node is not erased (node = 249) Unused node is not erased (node = 250) Unused node is not erased (node = 251) Unused node is not erased (node = 252) Unused node is not erased (node = 253) Unused node is not erased (node = 254) Unused node is not erased (node = 255) Unused node is not erased (node = 256) ** Checking catalog hierarchy. ** Checking volume bitmap. ** Checking volume information. Verify Status: VIStat = 0x0000, ABTStat = 0x0000 EBTStat = 0x0000 CBTStat = 0x0004 CatStat = 0x00000000 ** The volume untitled was found corrupt and needs to be repaired. volume type is HFS primary MDB is at block 2 0x02 alternate MDB is at block 20971518 0x13ffffe primary VHB is at block 0 0x00 alternate VHB is at block 0 0x00 sector size = 512 0x200 VolumeObject flags = 0x19 total sectors for volume = 20971520 0x1400000 total sectors for embedded volume = 0 0x00 It looks like that HFS driver doesn't erase deleted nodes of catalog file. So, I need to refresh my knowledge of HFS on-disk layout. Somehow, scratch volume becomes corrupted too. But I don't quite follow yet which operation makes it happened. We lost magic signature in the first MDB. 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000400 00 00 e4 31 b7 03 e4 31 b7 03 01 00 00 00 00 03 |...1...1........| 00000410 00 00 ff 33 00 02 82 00 00 0a 08 00 00 13 00 00 |...3............| 00000420 00 10 ff 27 08 75 6e 74 69 74 6c 65 64 00 00 00 |...'.untitled...| 00000430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000440 00 00 00 00 00 00 00 00 00 03 00 0f 0c 00 00 0f |................| 00000450 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000460 00 00 00 00 00 00 00 00 00 00 00 00 00 63 6e 65 |.............cne| 00000470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000480 00 00 00 0f 0c 00 00 00 00 06 00 00 00 00 00 00 |................| 00000490 00 00 00 0f 0c 00 00 06 00 06 00 00 00 00 00 00 |................| 000004a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000600 ff f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00002600 00 00 00 00 00 00 00 00 01 00 00 03 00 00 00 00 |................| 00002610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00002620 02 00 00 07 00 00 07 86 00 00 07 85 00 00 00 0f |................| 00002630 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00002640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000026f0 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 |................| 00002700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000027f0 00 00 00 00 00 00 00 00 01 f8 00 f8 00 78 00 0e |.............x..| 00002800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000f3200 00 00 00 00 00 00 00 00 01 00 00 03 00 00 00 01 |................| 000f3210 00 00 00 01 00 00 00 02 00 00 00 01 00 00 00 01 |................| 000f3220 02 00 00 25 00 00 07 86 00 00 07 84 00 00 00 0f |...%............| 000f3230 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000f3240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000f32f0 00 00 00 00 00 00 00 00 c0 00 00 00 00 00 00 00 |................| 000f3300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000f33f0 00 00 00 00 00 00 00 00 01 f8 00 f8 00 78 00 0e |.............x..| 000f3400 00 00 00 00 00 00 00 00 ff 01 00 02 00 00 0f 00 |................| 000f3410 00 00 00 01 08 75 6e 74 69 74 6c 65 64 00 01 00 |.....untitled...| 000f3420 00 00 00 00 00 00 00 02 e4 31 b7 03 e4 31 b7 03 |.........1...1..| 000f3430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000f3460 00 00 00 00 06 00 00 00 00 02 00 00 03 00 00 00 |................| 000f3470 00 00 00 00 00 00 00 00 00 01 08 75 6e 74 69 74 |...........untit| 000f3480 6c 65 64 00 00 00 00 00 00 00 00 00 00 00 00 00 |led.............| 000f3490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000f35f0 00 00 00 00 00 00 00 00 00 00 00 9a 00 64 00 0e |.............d..| 000f3600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 27ffffc00 42 44 e4 31 b7 03 e4 31 b7 03 01 00 00 00 00 03 |BD.1...1........| 27ffffc10 00 00 ff 33 00 02 82 00 00 0a 08 00 00 13 00 00 |...3............| 27ffffc20 00 10 ff 27 08 75 6e 74 69 74 6c 65 64 00 00 00 |...'.untitled...| 27ffffc30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 27ffffc40 00 00 00 00 00 00 00 00 00 02 00 0f 0c 00 00 0f |................| 27ffffc50 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 27ffffc60 00 00 00 00 00 00 00 00 00 00 00 00 00 63 6e 65 |.............cne| 27ffffc70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 27ffffc80 00 00 00 0f 0c 00 00 00 00 06 00 00 00 00 00 00 |................| 27ffffc90 00 00 00 0f 0c 00 00 06 00 06 00 00 00 00 00 00 |................| 27ffffca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 280000000 And it looks like that mkfs.hfs simply ignores the -v option. I requested the test volume label, but it's untitled, finally. mkfs.hfs -v test ./scratch-image.bin Initialized ./scratch-image.bin as a 10240 MB HFS volume hexdump -C ./scratch-image.bin 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000400 42 44 e4 34 41 f8 e4 34 41 f8 01 00 00 00 00 03 |BD.4A..4A.......| 00000410 00 00 ff 33 00 02 82 00 00 0a 08 00 00 13 00 00 |...3............| 00000420 00 10 ff 27 08 75 6e 74 69 74 6c 65 64 00 00 00 |...'.untitled...| 00000430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000440 00 00 00 00 00 00 00 00 00 02 00 0f 0c 00 00 0f |................| 00000450 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000460 00 00 00 00 00 00 00 00 00 00 00 00 00 63 6e 65 |.............cne| 00000470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000480 00 00 00 0f 0c 00 00 00 00 06 00 00 00 00 00 00 |................| 00000490 00 00 00 0f 0c 00 00 06 00 06 00 00 00 00 00 00 |................| 000004a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| mkfs.hfs -h usage: mkfs.hfs [-N [partition-size]] [hfsplus-options] special-device options: -h create an HFS format filesystem (HFS Plus is the default) -N do not create file system, just print out parameters -s use case-sensitive filenames (default is case-insensitive) -w add a HFS wrapper (i.e. Native Mac OS 9 bootable) where hfsplus-options are: -J [journal-size] make this HFS+ volume journaled -D journal-dev use 'journal-dev' for an external journal -G group-id (for root directory) -U user-id (for root directory) -M octal access-mask (for root directory) -b allocation block size (4096 optimal) -c clump size list (comma separated) a=blocks (attributes file) b=blocks (bitmap file) c=blocks (catalog file) d=blocks (user data fork) e=blocks (extents file) r=blocks (user resource fork) -i starting catalog node id -n b-tree node size list (comma separated) e=size (extents b-tree) c=size (catalog b-tree) a=size (attributes b-tree) -v volume name (in ascii or UTF-8) examples: mkfs.hfs -v Untitled /dev/rdisk0s7 mkfs.hfs -v Untitled -n c=4096,e=1024 /dev/rdisk0s7 mkfs.hfs -v Untitled -c b=64,c=1024 /dev/rdisk0s Thanks, Slava. [1] https://dubeyko.com/development/FileSystems/hfs.html [2] https://dubeyko.com/development/FileSystems/hfsplus.html ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: 回复: 回复: 回复: 回复: HFS/HFS+ maintainership action items 2025-04-27 20:28 ` Viacheslav Dubeyko @ 2025-05-02 3:01 ` Theodore Ts'o 2025-05-02 19:14 ` Viacheslav Dubeyko 0 siblings, 1 reply; 25+ messages in thread From: Theodore Ts'o @ 2025-05-02 3:01 UTC (permalink / raw) To: Viacheslav Dubeyko Cc: frank.li@vivo.com, glaubitz@physik.fu-berlin.de, linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hey, in case it would be helpfui, I've added hfs support to the kvm-xfstests/gce-xfstests[1] test appliance. Following the instructions at [2], you can now run "kvm-xfstests -c hfs -g auto" to run all of the tests in the auto group. If you want to replicate the failure in generic/001, you could run "kvm-fstests -c hfs generic/001". [1] http://thunk.org/gce-xfstests [2] https://github.com/tytso/xfstests-bld/blob/master/Documentation/kvm-quickstart.md Your IBM colleages Ritesh Harjani and Ojaswin Mujoo use this framework for testing ext4, and have contributed towards this test framework. So if you have any questions, you could reach out to them. I'm quite willing to help as well, of course! - Ted ^ permalink raw reply [flat|nested] 25+ messages in thread
* RE: 回复: 回复: 回复: 回复: HFS/HFS+ maintainership action items 2025-05-02 3:01 ` Theodore Ts'o @ 2025-05-02 19:14 ` Viacheslav Dubeyko 2025-05-03 5:39 ` Theodore Ts'o 0 siblings, 1 reply; 25+ messages in thread From: Viacheslav Dubeyko @ 2025-05-02 19:14 UTC (permalink / raw) To: tytso@mit.edu Cc: frank.li@vivo.com, glaubitz@physik.fu-berlin.de, linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com On Thu, 2025-05-01 at 23:01 -0400, Theodore Ts'o wrote: > Hey, in case it would be helpfui, I've added hfs support to the > kvm-xfstests/gce-xfstests[1] test appliance. Following the > instructions at [2], you can now run "kvm-xfstests -c hfs -g auto" to > run all of the tests in the auto group. If you want to replicate the > failure in generic/001, you could run "kvm-fstests -c hfs generic/001". > Yes, it is really helpful! Sounds great! Let me try this framework for HFS/HFS+. Thanks a lot. > [1] http://thunk.org/gce-xfstests > [2] https://github.com/tytso/xfstests-bld/blob/master/Documentation/kvm-quickstart.md > > Your IBM colleages Ritesh Harjani and Ojaswin Mujoo use this framework > for testing ext4, and have contributed towards this test framework. > So if you have any questions, you could reach out to them. I'm quite > willing to help as well, of course! > Make sense. I will do. Thanks again. Thanks, Slava. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: 回复: 回复: 回复: 回复: HFS/HFS+ maintainership action items 2025-05-02 19:14 ` Viacheslav Dubeyko @ 2025-05-03 5:39 ` Theodore Ts'o 2025-05-05 23:08 ` Viacheslav Dubeyko 0 siblings, 1 reply; 25+ messages in thread From: Theodore Ts'o @ 2025-05-03 5:39 UTC (permalink / raw) To: Viacheslav Dubeyko Cc: frank.li@vivo.com, glaubitz@physik.fu-berlin.de, linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com On Fri, May 02, 2025 at 07:14:26PM +0000, Viacheslav Dubeyko wrote: > On Thu, 2025-05-01 at 23:01 -0400, Theodore Ts'o wrote: > > Hey, in case it would be helpfui, I've added hfs support to the > > kvm-xfstests/gce-xfstests[1] test appliance. Following the > > instructions at [2], you can now run "kvm-xfstests -c hfs -g auto" to > > run all of the tests in the auto group. If you want to replicate the > > failure in generic/001, you could run "kvm-fstests -c hfs generic/001". > > > > Yes, it is really helpful! Sounds great! Let me try this framework for HFS/HFS+. > Thanks a lot. FYI, I'm using the hfsprogs from Debian, which at the moment only supports HFS+. The prebuilt test appliance for {kvm,gce}-xfstests are based on Debian Stable (Bookworm), but I am building test appliances using Debian Testing (Trixie). However, for the purposes of hfsprogs, both Debian Bookwrm and Trixie are based on the 540.1 version of hfsprogs. But there are plenty of bugs to fix until we can manage to get a version of hfsprogs that supports HFS --- also I'd argue that for many users support of HFS+ is probably more useful. If you find some test failures which are more about test bugs than kernel bug, so we can add them to exclude files. For example, in /root/fs/ext4/exclude I have things like: // generic/04[456] tests how truncate and delayed allocation works // ext4 uses the data=ordered to avoid exposing stale data, and // so it uses a different mechanism than xfs. So these tests will fail generic/044 generic/045 generic/046 Since I aso test LTS kernels, and sometimes it's not practcal to backport fixes to older kernels we can also do versioned excludes. For example, I have in /root/fs/global_exclude entries like: #if LINUX_VERSION_CODE < KERNEL_VERSION(6,6,30) // This test failure is fixed by commit 631426ba1d45q ("mm/madvise: // make MADV_POPULATE_(READ|WRITE) handle VM_FAULT_RETRY properly"), // which first landed in v6.9, and was backported to 6.6.30 as commit // 631426ba1d45. Unfortunately, it's too involved to backport it and its // dependencies to the 6.1 or earlier LTS kernels generic/743 #endif Finally, I have things set up to automatically run tests when a branch on a git tree that I'm watching changes. For exmaple: gce-xfstests ltm -c ext4/all,xfs/all,btrfs/all,f2fs/all -g auto --repo https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next --watch fs-next gce-xfstests ltm -c ext4/all,xfs/all -g auto --repo stable-rc.git --watch linux-6.12.y gce-xfstests ltm -c ext4/all,xfs/all -g auto --repo stable-rc.git --watch linux-6.6.y If it's helpful, I can set up watchers for hfs and send them to you or some mailing list once the number of failures are reduced toa manageable number. Cheers, - Ted P.S. An example e-mail report: TESTRUNID: ltm-20250416105110-0009 KERNEL: kernel 6.12.25-rc1-xfstests-g56d2398227a2 #6 SMP PREEMPT_DYNAMIC Wed Apr 23 10:48:50 EDT 2025 x86_64 CMDLINE: -c ext4/all,xfs/all -g auto --repo stable-rc.git --watch linux-6.12.y CPUS: 2 MEM: 7680 ext4/4k: 587 tests, 1 failures, 55 skipped, 5596 seconds Flaky: generic/234: 20% (1/5) ext4/1k: 581 tests, 2 failures, 59 skipped, 7807 seconds Failures: generic/363 generic/758 ext4/ext3: 579 tests, 1 failures, 149 skipped, 4646 seconds Failures: ext4/028 ext4/encrypt: 562 tests, 175 skipped, 3795 seconds ext4/nojournal: 579 tests, 127 skipped, 4038 seconds ext4/ext3conv: 584 tests, 57 skipped, 5044 seconds ext4/adv: 580 tests, 2 failures, 63 skipped, 4933 seconds Failures: generic/757 generic/764 ext4/dioread_nolock: 585 tests, 55 skipped, 5135 seconds ext4/data_journal: 580 tests, 1 failures, 135 skipped, 5776 seconds Failures: generic/127 ext4/bigalloc_4k: 558 tests, 58 skipped, 4870 seconds ext4/bigalloc_1k: 559 tests, 2 failures, 69 skipped, 5141 seconds Failures: generic/363 generic/758 ext4/dax: 571 tests, 1 failures, 160 skipped, 3196 seconds Failures: generic/363 xfs/4k: 1181 tests, 2 failures, 173 skipped, 12295 seconds Failures: xfs/273 xfs/820 xfs/1k: 1181 tests, 2 failures, 173 skipped, 12407 seconds Failures: xfs/273 xfs/820 xfs/adv: 1181 tests, 4 failures, 173 skipped, 12416 seconds Failures: xfs/273 xfs/820 Flaky: generic/234: 20% (1/5) generic/370: 20% (1/5) xfs/quota: 1181 tests, 3 failures, 174 skipped, 11305 seconds Failures: xfs/273 xfs/820 Flaky: generic/370: 60% (3/5) xfs/quota_1k: 1181 tests, 4 failures, 177 skipped, 21927 seconds Failures: xfs/273 xfs/629 xfs/820 Flaky: generic/627: 60% (3/5) xfs/dirblock_8k: 1181 tests, 2 failures, 175 skipped, 15638 seconds Failures: xfs/273 xfs/820 xfs/realtime: 1180 tests, 4 failures, 531 skipped, 9820 seconds Failures: generic/455 xfs/013 xfs/273 xfs/609 xfs/realtime_28k_logdev: 1216 tests, 41 failures, 1 errors, 613 skipped, 12164 seconds Failures: generic/757 xfs/253 xfs/273 xfs/598 xfs/629 xfs/630 xfs/631 xfs/632 Flaky: xfs/609: 20% (1/5) Errors: xfs/137 xfs/realtime_logdev: 1200 tests, 21 failures, 1 errors, 586 skipped, 11650 seconds Failures: generic/757 xfs/253 xfs/273 xfs/598 Flaky: xfs/609: 20% (1/5) Errors: xfs/137 xfs/logdev: 1209 tests, 31 failures, 1 errors, 245 skipped, 15002 seconds Failures: generic/757 xfs/234 xfs/253 xfs/273 xfs/598 xfs/820 Flaky: generic/234: 20% (1/5) Errors: xfs/137 xfs/dax: 1191 tests, 7 failures, 344 skipped, 8396 seconds Failures: xfs/550 xfs/551 xfs/552 xfs/629 xfs/632 xfs/820 Flaky: generic/363: 40% (2/5) Totals: 20139 tests, 4526 skipped, 264 failures, 3 errors, 192766s FSTESTIMG: gce-xfstests/xfstests-amd64-202504110828 FSTESTPRJ: gce-xfstests FSTESTVER: blktests 236edfd (Tue, 18 Mar 2025 12:56:26 +0900) FSTESTVER: fio fio-3.39 (Tue, 18 Feb 2025 08:36:57 -0700) FSTESTVER: fsverity v1.6-2-gee7d74d (Mon, 17 Feb 2025 11:41:58 -0800) FSTESTVER: ima-evm-utils v1.5 (Mon, 6 Mar 2023 07:40:07 -0500) FSTESTVER: libaio libaio-0.3.108-82-gb8eadc9 (Thu, 2 Jun 2022 13:33:11 +0200) FSTESTVER: ltp 20250130-195-ge2bbba0c1 (Fri, 11 Apr 2025 18:06:15 +0800) FSTESTVER: quota v4.05-69-g68952f1 (Mon, 7 Oct 2024 15:45:56 -0400) FSTESTVER: util-linux v2.41 (Tue, 18 Mar 2025 13:50:51 +0100) FSTESTVER: xfsprogs v6.13.0-2-gf0d16c9e (Tue, 1 Apr 2025 20:23:42 -0400) FSTESTVER: xfstests-bld 42bcd9aa (Wed, 9 Apr 2025 07:51:57 -0400) FSTESTVER: xfstests v2025.03.30-11-g344015670 (Mon, 31 Mar 2025 13:50:06 -0400) FSTESTVER: zz_build-distro bookworm FSTESTSET: -g auto FSTESTOPT: aex ^ permalink raw reply [flat|nested] 25+ messages in thread
* RE: 回复: 回复: 回复: 回复: HFS/HFS+ maintainership action items 2025-05-03 5:39 ` Theodore Ts'o @ 2025-05-05 23:08 ` Viacheslav Dubeyko 0 siblings, 0 replies; 25+ messages in thread From: Viacheslav Dubeyko @ 2025-05-05 23:08 UTC (permalink / raw) To: tytso@mit.edu Cc: frank.li@vivo.com, glaubitz@physik.fu-berlin.de, linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com On Sat, 2025-05-03 at 01:39 -0400, Theodore Ts'o wrote: > On Fri, May 02, 2025 at 07:14:26PM +0000, Viacheslav Dubeyko wrote: > > On Thu, 2025-05-01 at 23:01 -0400, Theodore Ts'o wrote: > > > Hey, in case it would be helpfui, I've added hfs support to the > > > kvm-xfstests/gce-xfstests[1] test appliance. Following the > > > instructions at [2], you can now run "kvm-xfstests -c hfs -g auto" to > > > run all of the tests in the auto group. If you want to replicate the > > > failure in generic/001, you could run "kvm-fstests -c hfs generic/001". > > > > > > > Yes, it is really helpful! Sounds great! Let me try this framework for HFS/HFS+. > > Thanks a lot. > > FYI, I'm using the hfsprogs from Debian, which at the moment only > supports HFS+. The prebuilt test appliance for {kvm,gce}-xfstests are > based on Debian Stable (Bookworm), but I am building test appliances > using Debian Testing (Trixie). However, for the purposes of hfsprogs, > both Debian Bookwrm and Trixie are based on the 540.1 version of > hfsprogs. > > But there are plenty of bugs to fix until we can manage to get a > version of hfsprogs that supports HFS --- also I'd argue that for many > users support of HFS+ is probably more useful. > Yeah, HFS+ is more important. And, yes, we need to manage a lot of bugs yet. > If you find some test failures which are more about test bugs than > kernel bug, so we can add them to exclude files. For example, in > /root/fs/ext4/exclude I have things like: > > // generic/04[456] tests how truncate and delayed allocation works > // ext4 uses the data=ordered to avoid exposing stale data, and > // so it uses a different mechanism than xfs. So these tests will fail > generic/044 > generic/045 > generic/046 > Yes, makes sense. Let us identify such cases at first. > Since I aso test LTS kernels, and sometimes it's not practcal to > backport fixes to older kernels we can also do versioned excludes. > For example, I have in /root/fs/global_exclude entries like: > > #if LINUX_VERSION_CODE < KERNEL_VERSION(6,6,30) > // This test failure is fixed by commit 631426ba1d45q ("mm/madvise: > // make MADV_POPULATE_(READ|WRITE) handle VM_FAULT_RETRY properly"), > // which first landed in v6.9, and was backported to 6.6.30 as commit > // 631426ba1d45. Unfortunately, it's too involved to backport it and its > // dependencies to the 6.1 or earlier LTS kernels > generic/743 > #endif > > Finally, I have things set up to automatically run tests when a branch > on a git tree that I'm watching changes. For exmaple: > > gce-xfstests ltm -c ext4/all,xfs/all,btrfs/all,f2fs/all -g auto --repo https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next --watch fs-next > > gce-xfstests ltm -c ext4/all,xfs/all -g auto --repo stable-rc.git --watch linux-6.12.y > > gce-xfstests ltm -c ext4/all,xfs/all -g auto --repo stable-rc.git --watch linux-6.6.y > > If it's helpful, I can set up watchers for hfs and send them to you or > some mailing list once the number of failures are reduced toa > manageable number. > Sounds great! But we definitely have to reduce the number of bugs to manageable level at first. :) Thanks, Slava. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: 回复: 回复: 回复: HFS/HFS+ maintainership action items 2025-04-25 19:36 ` 回复: " 李扬韬 2025-04-25 19:44 ` Viacheslav Dubeyko @ 2025-04-25 20:51 ` John Paul Adrian Glaubitz 1 sibling, 0 replies; 25+ messages in thread From: John Paul Adrian Glaubitz @ 2025-04-25 20:51 UTC (permalink / raw) To: 李扬韬, Viacheslav Dubeyko Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Yangtao, On Fri, 2025-04-25 at 19:36 +0000, 李扬韬 wrote: > 2). Arch Linux has the hfsprogs installation package, but > after installation there is only mkfs.hfsplus, missing mkfs.hfs > > I think if I switch to Ubuntu or something, this problem should go away. Apple removed support for creating legacy HFS filesystems around version 500 of the hfs source code but kept the code for checking legacy HFS filesystems. For the Debian package, I just forward-ported support for creating legacy HFS filesystems such that Debian's hfsprogs supports both HFS and HFS+. The patch can be found in [1]. In the future, I'm planning to split the Debian packages into a hfsprogs-legacy and a hfsprogs package. The -legacy package is supposed to stay at the old package version and provide mkfs.hfs while the hfsprogs package will track the current upstream sources as Apple is still actively maintaining hfsprogs [2]. I am also working on creating a patch set that all Linux distributions can use on top of Apple's vanilla upstream sources. The current WIP can be found in [3]. Adrian > [1] https://salsa.debian.org/debian/hfsprogs/-/blob/master/debian/patches/0005-Re-add-support-for-creating-legacy-HFS-filesystems.patch?ref_type=heads > [2] https://github.com/apple-oss-distributions/hfs > [3] https://github.com/glaubitz/hfs/tree/linux -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: 回复: HFS/HFS+ maintainership action items 2025-04-25 10:17 ` 回复: " 李扬韬 2025-04-25 11:32 ` John Paul Adrian Glaubitz @ 2025-04-25 18:02 ` Viacheslav Dubeyko 1 sibling, 0 replies; 25+ messages in thread From: Viacheslav Dubeyko @ 2025-04-25 18:02 UTC (permalink / raw) To: frank.li@vivo.com, glaubitz@physik.fu-berlin.de Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, slava@dubeyko.com Hi Yangtao, On Fri, 2025-04-25 at 10:17 +0000, 李扬韬 wrote: > Hi Slava, > > > So, we need at first to check these issues. And it's a lot of work. :) > > That's a lot of test failures, probably many for the same reason. > Probably, yes, but we need to check it. If it is one or several root causes, then we are lucky. :) > Are there any changes to xfstest? Has this been sent to the fstest mailing list? > This is a generic test cases and other file systems can pass it. For example, I can pass xfstests for CephFS kernel client. So, we must think now that it is HFS/HFS+ issues until we can prove the opposite one. > I'm also planning to start deploying a local xfstest environment. : ) > Sounds great! I think we will need to distribute test-cases check to avoid the duplication of efforts. Thanks, Slava. ^ permalink raw reply [flat|nested] 25+ messages in thread
end of thread, other threads:[~2025-05-05 23:08 UTC | newest] Thread overview: 25+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-04-21 21:52 HFS/HFS+ maintainership action items Viacheslav Dubeyko 2025-04-22 2:43 ` Theodore Ts'o 2025-04-22 4:16 ` Darrick J. Wong 2025-04-22 7:21 ` John Paul Adrian Glaubitz 2025-04-22 7:20 ` John Paul Adrian Glaubitz 2025-04-22 12:35 ` John Paul Adrian Glaubitz 2025-04-22 21:12 ` Viacheslav Dubeyko 2025-04-22 21:47 ` John Paul Adrian Glaubitz 2025-04-22 21:48 ` John Paul Adrian Glaubitz 2025-04-25 1:06 ` Viacheslav Dubeyko 2025-04-25 10:17 ` 回复: " 李扬韬 2025-04-25 11:32 ` John Paul Adrian Glaubitz 2025-04-25 11:39 ` 回复: " 李扬韬 2025-04-25 18:25 ` Viacheslav Dubeyko 2025-04-25 19:36 ` 回复: " 李扬韬 2025-04-25 19:44 ` Viacheslav Dubeyko 2025-04-26 6:17 ` 回复: " 李扬韬 2025-04-26 6:59 ` John Paul Adrian Glaubitz 2025-04-27 20:28 ` Viacheslav Dubeyko 2025-05-02 3:01 ` Theodore Ts'o 2025-05-02 19:14 ` Viacheslav Dubeyko 2025-05-03 5:39 ` Theodore Ts'o 2025-05-05 23:08 ` Viacheslav Dubeyko 2025-04-25 20:51 ` John Paul Adrian Glaubitz 2025-04-25 18:02 ` Viacheslav Dubeyko
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).