History log of /freebsd-current/sys/fs/tarfs/tarfs_vnops.c
Revision Date Author Comments
# 742f4b77 20-Apr-2024 Gordon Bergling <gbe@FreeBSD.org>

tarfs(5): Grammar fix for a source code comment

- s/the the/of the/

MFC after:i 3 days


# a0895e39 05-Apr-2024 Mark Johnston <markj@FreeBSD.org>

tarfs: Implement VOP_BMAP

This lets tarfs provide readahead/behind hints to the VFS, which helps
memory-mapped I/O performance, important when running faulting in
executables out of a tarfs mount as one might if tarfs is used to back
the root filesystem, for example. The improvement is particularly
noticeable when the backing tarball is zstd-compressed.

The implementation simply returns the extent of the virtual block
containing the target offset, clamped by the maximum I/O size. This is
perhaps simplistic; it effectively just chooses values that would
correspond to a single VOP_READ call in tarfs_read_file().

Reviewed by: des, kib
MFC after: 1 month
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D44626


# af0435e1 10-Feb-2023 Dag-Erling Smørgrav <des@FreeBSD.org>

tarfs: Fix deadlock between descent and ascent in tarfs_lookup().

Sponsored by: Juniper Networks, Inc.
Sponsored by: Klara, Inc.
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D38486


# ce6a0c77 09-Feb-2023 Dag-Erling Smørgrav <des@FreeBSD.org>

tarfs: Fix issues revealed by static analysis and testing.

* tarfs_alloc_mount(): Remove an unnecessary null check (CID 1504505) and an unused variable.

* tarfs_alloc_one(): Verify that the file size is not negative (CID 1504506). While there, also validate the mode, owner and group.

* tarfs_vget(), tarfs_zio_init(): Explicitly ignore return value from getnewvnode(), which cannot fail (CID 1504508)

* tarfs_lookup_path(): Fix a case where a specially-crafted tarball could trigger a null pointer dereference by first descending into, and then backing out of, a previously unknown directory. (CID 1504515)

* mktar: Construct a tarball that triggers the aforementioned null pointer dereference.

Reported by: Coverity
Sponsored by: Juniper Networks, Inc.
Sponsored by: Klara, Inc.
Reviewed by: imp, kib
Differential Revision: https://reviews.freebsd.org/D38463


# a8fc2fe3 06-Feb-2023 Dag-Erling Smørgrav <des@FreeBSD.org>

tarfs: Remove unnecessary code.

Reported by: kib
Sponsored by: Juniper Networks, Inc.
Sponsored by: Klara, Inc.
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D38401


# c9ff56ce 06-Feb-2023 Dag-Erling Smørgrav <des@FreeBSD.org>

tarfs: Terminate dirents before copying them out.

Reported by: markj
Sponsored by: Juniper Networks, Inc.
Sponsored bu: Klara, Inc.
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D38400


# fb53e7ad 02-Feb-2023 Dag-Erling Smørgrav <des@FreeBSD.org>

tarfs: Fix 32-bit build.

Sponsored by: Juniper Networks, Inc.
Sponsored by: Klara, Inc.


# 69d94f4c 02-Feb-2023 Dag-Erling Smørgrav <des@FreeBSD.org>

Add tarfs, a filesystem backed by tarballs.

Sponsored by: Juniper Networks, Inc.
Sponsored by: Klara, Inc.
Reviewed by: pauamma, imp
Differential Revision: https://reviews.freebsd.org/D37753