Commit graph android_kernel_sony_sdm845/fs/incfs/data_mgmt.c
Message SHA1
ANDROID: Incremental fs: Optimize get_filled_block
This led to a 20x speed improvement on QEMU. 512 is somewhat
arbitrary - most of the gains are already there reading 64 records
at a time, but since the record size is 10 bytes, 512 is just over
a page and seems a good choice.

Bug: 153170997
Test: incfs_test passes. Adding logging to incfs_get_filled_blocks
	to measure performance shows a 20x improvement
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Ifb2da77cfd8c9d653c7047ba1eb7f39d795fa1c2
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Paul Lawrence   authored and   Sorayukii   commited 2026-05-15 18:07:14 +07:00
be21bbfeff
ANDROID: Incremental fs: Fix mislabeled __user ptrs
Found by sparse

Bug: 153174547
Test: make C=2 fs/incfs/incrementalfs.ko no errors, incfs_test pass
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I9ff4f4f35975fe09936724488b96cd8bdeeb719e
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Paul Lawrence   authored and   Sorayukii   commited 2026-05-15 18:07:13 +07:00
0ea5001ebc
Revert "ANDROID: Incremental fs: Fix initialization, use of bitfields"
This change was never cherry-picked to other branches,
is just syntactic sugar, and clashes with another change. Revert,
and then apply cleanly over all branches as needed.

This reverts commit 2664a43d88d91eb09f212cb26e111656a4acee49.

Change-Id: I51dca9cb046cc15302c22e8f73e58dcf4849f84d
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Paul Lawrence   authored and   Sorayukii   commited 2026-05-15 18:07:13 +07:00
5c41473323
ANDROID: Incremental fs: Fix remount
Bug: 153017385
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I13f3a3c91d746d725e0e21b1e2bcfe0a64a13716
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Paul Lawrence   authored and   Sorayukii   commited 2026-05-15 18:07:13 +07:00
eec8582273
ANDROID: Incremental fs: Protect get_fill_block, and add a field
Since INCFS_IOC_GET_FILLED_BLOCKS potentially leaks information about usage
patterns, and is only useful to someone filling the file, best protect it in
the same way as INCFS_IOC_FILL_BLOCKS.

Add useful field data_block_out as well

Test: incfs_test passes
Bug: 152983639
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I126a8cf711e56592479093e9aadbfd0e7f700752
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Paul Lawrence   authored and   Sorayukii   commited 2026-05-15 18:07:13 +07:00
00de619c1a
ANDROID: Incremental fs: Fix crash polling 0 size read_log
When read log is 0 sized, we still need to init the wait queue to avoid
kernel panics if someone does decide to poll on the read log.

Test: Added test for this condition, incfs_test crashes
	With fix, incfs_test doesn't crash
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Bug: 152909243
Change-Id: Ic3250523bb7ddb1839f8e95852c17103e5ffb782
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Paul Lawrence   authored and   Sorayukii   commited 2026-05-15 18:07:13 +07:00
c21823b3d1
ANDROID: Incremental fs: get_filled_blocks: better index_out
When returning incomplete results index_out has to be usable to
call the function again and resume from the same location. This
means that if the output buffer was too small the function needs
to check for that when encountering the _beginning_ of a next
output range, not the end of it. Otherwise resuming from the
end of the range that didn't fit into the buffer would cause
the call to never return that range

+ Make the backing file header flags update thread safe

Bug: 152691988
Test: libincfs-test, incfs_test passes
Signed-off-by: Yurii Zubrytskyi <zyy@google.com>
Change-Id: I351156beba0b74e1942a39117279d3fcdb5e0c78
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Yurii Zubrytskyi   authored and   Sorayukii   commited 2026-05-15 18:07:13 +07:00
7e8bff859f
ANDROID: Incremental fs: Add INCFS_IOC_GET_FILLED_BLOCKS
Test: incfs_test passes
Bug: 151240628
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I66d0ba1911adc5d68ed404585222e6a81a7eb94f
(cherry picked from commit 8d963bb24076b60cb2de0f2d49deaff1d52e8270)
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Paul Lawrence   authored and   Sorayukii   commited 2026-05-15 18:07:12 +07:00
dd83044b68
ANDROID: Incremental fs: Fix two typos
Test: incfs_test passes
Bug: 151240628
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I627e683b562329fd57aedc8393e22449ff09ee1f
(cherry picked from commit 06c715e275dc65e720759cfeacb4120289e2a306)
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Paul Lawrence   authored and   Sorayukii   commited 2026-05-15 18:07:12 +07:00
1374ad247a
ANDROID: Incremental fs: Remove signature checks from kernel
Test: selftests pass
Bug: 133435829
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Ia7e69b1b0176202da4b418ea815b370cbdacd5c2
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Paul Lawrence   authored and   Sorayukii   commited 2026-05-15 18:07:12 +07:00
e90d6e1ba1
ANDROID: Incremental fs: Make fill block an ioctl
Filling blocks is not equivalent to writing a file, since they are
constrained by the root hash. selinux policy may wish to treat them
differently, for instance.

Test: incfs_test passes
Bug: 138149732
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Ic369b84b92547b1cfefe422bd881c4e466090aed
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Paul Lawrence   authored and   Sorayukii   commited 2026-05-15 18:07:12 +07:00
720964e7e5
ANDROID: Incremental fs: Support xattrs
To make selinux work, add xattr support. This is a bit clunky -
it seems like it would be better for the log and pending read
functionality to be ioctls rather than this mixture of real
and virtual files.

Bug: 133435829
Change-Id: I56579fabe2ae7efb88f0344553948dc9573299aa
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Paul Lawrence   authored and   Sorayukii   commited 2026-05-15 18:07:11 +07:00
a788b72d8a
ANDROID: Incremental fs: Fix initialization, use of bitfields
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Bug: 133435829
Change-Id: I824286b77f665d2409c5e88930057a97da82ce82
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Paul Lawrence   authored and   Sorayukii   commited 2026-05-15 18:07:11 +07:00
13b297a110
ANDROID: Fixing incremental fs style issues
Removed WARN_ONs
Removed compatibilty code
Fixed tab issue

Bug: 133435829
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I8a9e9ead48a65fd09c2d01d22f65d9a352f118e2
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Paul Lawrence   authored and   Sorayukii   commited 2026-05-15 18:07:11 +07:00
7fcde1d83b
ANDROID: Initial commit of Incremental FS
Fully working incremental fs filesystem

Signed-off-by: Eugene Zemtsov <ezemtsov@google.com>
Signed-off-by: Paul Lawrence <paullawrence@google.com>

Bug: 133435829
Change-Id: I14741a61ce7891a0f9054e70f026917712cbef78
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Eugene Zemtsov   authored and   Sorayukii   commited 2026-05-15 18:07:10 +07:00
d5572a7ec1