15 Commits
Author SHA1 Message Date
Ernesto A. Fernández b2418aaaa7 Clarify the modprobe situation in the README
I notice a lot of traffic to the following issue:

  https://github.com/linux-apfs/linux-apfs-rw/issues/96

Recent distro kernels seem to ship with a built-in libcrc32c, so the
modprobe step described in the README is not necessary and will fail. I
assumed it would be clear to the users that they can just keep going
when that happens, but some of them are being extra careful, which is
probably the right attitude to have when dealing with a filesystem.

Rephrase the README to make it clear that the modprobe step is not
usually needed anymore.

Signed-off-by: Ernesto A. Fernández <ernesto@corellium.com>
2026-05-27 16:58:08 -03:00
Ernesto A. Fernández 6a24fdcb2e Update readme with fusion drive support
Fusion drives now have read-only support, so update the readme.

Signed-off-by: Ernesto A. Fernández <ernesto@corellium.com>
2025-02-14 18:48:47 -03:00
Ernesto A. Fernández 1643ae2688 Get rid of the rst note from the last patch
Github doesn't support rst notes, so it just looks silly over there.
Make it into a regular paragraph.

Signed-off-by: Ernesto A. Fernández <ernesto@corellium.com>
2024-11-08 20:35:46 -03:00
Ernesto A. Fernández 7e6babba01 Mention the distro packages in the readme
Some users seem unaware of the existence of packages for the driver, and
I guess that's my fault because the (outdated) readme doesn't mention
them at all. Add a small note about it in the beginning of the "build"
section.

Signed-off-by: Ernesto A. Fernández <ernesto@corellium.com>
2024-11-08 20:19:31 -03:00
Ernesto A. Fernández c1cae76fb3 Rework the second paragraph of the readme
These days I'm far more careful about testing multiple kernel versions,
so the warning in the second paragraph of the readme ("only a few of
those have actually been tested") is a bit excessive. Simplify that
stuff. Don't bother mentioning the support for 4.9-4.11 kernels, it has
some performance issues and they are old enough that it probably doesn't
matter much.

The rest of the paragraph is about bug reporting. Move this into a
separate section, so that it's easier to find, and to give me room to
explain the use of dmesg.

Signed-off-by: Ernesto A. Fernández <ernesto@corellium.com>
2024-11-08 20:02:16 -03:00
Ernesto A. Fernández 240702b9f6 Tone down corruption warnings in the readme
The driver is not that bad these days. Corruption is still a real risk
of course, but when it happens it's a bug related to some untested
corner case (like the recent issue with filesystems above 1.32 TiB), not
expected behaviour. So tone down the warnings, but make it clear that
it's not all that safe yet.

Signed-off-by: Ernesto A. Fernández <ernesto@corellium.com>
2024-11-08 18:26:05 -03:00
Ernesto A. Fernández 784dd43146 Fix typo in previous commit
It's annoying to have to make a new commit just for this, but I had
already pushed the bad one...

Signed-off-by: Ernesto A. Fernández <ernesto@corellium.com>
2024-02-22 16:01:46 -03:00
Ernesto A. Fernández 7df84d2173 Mention fusion drives in the README
Fusion drives are not yet supported, but the README does not mention
this. Fix it.

Signed-off-by: Ernesto A. Fernández <ernesto@corellium.com>
2024-02-20 20:04:21 -03:00
Ernesto A. Fernández b5a2f9fb62 Update the README with compression support
As I mentioned in the release notes, the driver now has a reasonable
support for compression. The README still claims that it doesn't,
though, because I forgot to update it before the release. Fix it now.

Signed-off-by: Ernesto A. Fernández <ernesto@corellium.com>
2023-02-02 19:19:00 -03:00
Ernesto A. Fernández 367f7bccdd Implement mount of old snapshots
In order to test the creation and preservation of snapshots, it's
important that we can actually check the contents ourselves. Add a new
'snap' mount option to specify the label of the wanted snapshot.

Signed-off-by: Ernesto A. Fernández <ernesto@corellium.com>
2023-01-06 19:39:02 -03:00
Ernesto A. Fernández ca9de567d0 Update email address in the README
Use my company email address for everything from now on, like I do for
the commits.

Signed-off-by: Ernesto A. Fernández <ernesto@corellium.com>
2022-03-01 15:20:02 -03:00
Ernesto A. Fernández 0a48c4e603 Re-enable readahead
It appears that readahead has been broken ever since multiple mounts
were introduced in commit 4a6c0e2b77 ("Support simultaneous mount of
multiple volumes"). The performance damage from this regression has been
very nasty. When reading a large file, the driver spends most of the
time sleeping, as it waits for the individual pages to be read.

The problem is that the fake anonymous devices used by each volume still
need to have their backing_dev_info set, especially the ra_pages field
which decides the length of the readahead operations. Follow btrfs and
call super_setup_bdi() from apfs_fill_super(). Cleanup is handled by
->kill_sb(), so no changes are needed there.

To avoid complicated conditional builds, don't make any changes for
kernels below 4.12, which introduced super_setup_bdi(). Of course this
means that those kernels are stuck with lousy read speeds, but they are
all set for EOL in little more than a year, so hopefully nobody will
mind.

Signed-off-by: Ernesto A. Fernández <ernesto@corellium.com>
2021-10-14 14:11:28 -03:00
Ernesto A. Fernández 2f9afd03a5 Bring back support for older kernel versions
I thought that it would be tricky to support kernel versions without
discard_new_inode(), but Sebastian Gottschall corrected me here:

  https://github.com/linux-apfs/linux-apfs-rw/issues/12#issuecomment-889997003

So revert commits c0d3d515b9 ("Get rid of macros for unsupported
kernel versions") and 2ce6d06dc7 ("Raise minimum supported kernel
version to 4.19"), in preparation to make the change he suggested in the
next commit.

Signed-off-by: Ernesto A. Fernández <ernesto@corellium.com>
2021-07-30 17:12:30 -03:00
Ernesto A. Fernández 2ce6d06dc7 Raise minimum supported kernel version to 4.19
Adding write support meant that the module stopped bulding for the 4.14
kernel:

  https://github.com/linux-apfs/linux-apfs-rw/issues/12

The problem is that discard_new_inode() was only added in 4.19. This is
probably fixable, but it might be a bit messy so I'd rather not waste
time with it unless someone actually needs it. Update the readme with
the new range of supported versions.

Signed-off-by: Ernesto A. Fernández <ernesto@corellium.com>
2021-06-25 15:37:27 -03:00
Ernesto A. Fernándezandsickcodes 08c4b0b03c Switch the readme to rst format
The rst format is both understood by github and used for documentation
inside the kernel, so use it for the project's readme file. Also take
this chance to update it and clean it up a little.

Co-authored-by: sickcodes <info@sick.codes>
Signed-off-by: Ernesto A. Fernández <ernesto@corellium.com>
2021-06-14 23:42:03 -03:00