History log of /freebsd/sys/fs/p9fs/p9fs_vnops.c (Results 1 – 7 of 7)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1d99e8d9 07-Nov-2024 Mark Johnston <markj@FreeBSD.org>

p9fs: Use UNLINKAT instead of REMOVE to implement removals

REMOVE doesn't work properly in the face of hard links. Use UNLINKAT
instead, which is implemented by qemu and bhyve and lets the client
s

p9fs: Use UNLINKAT instead of REMOVE to implement removals

REMOVE doesn't work properly in the face of hard links. Use UNLINKAT
instead, which is implemented by qemu and bhyve and lets the client
specify the name being removed.

PR: 282432
Reviewed by: dfr
Differential Revision: https://reviews.freebsd.org/D47438

show more ...


Revision tags: release/13.4.0
# 62bb18ab 04-Aug-2024 Bakul Shah <bakul@bitblocks.com>

p9fs: Properly handle paths containing "."

Fixes: 56e4622588ed ("p9fs: fix lookup of "." for lib9p-based 9P servers")
Pull Request: https://github.com/freebsd/freebsd-src/pull/1361


# a6ca6dfd 09-Jul-2024 Danilo Egea Gondolfo <danilo@FreeBSD.org>

p9fs: remove duplicated code

This code is using the vnode after it has been released and causing a
panic when a p9fs shared volume is unmounted. In fact, it seems like it's
just duplicated code left

p9fs: remove duplicated code

This code is using the vnode after it has been released and causing a
panic when a p9fs shared volume is unmounted. In fact, it seems like it's
just duplicated code left behind from a bad merge.

PR: 279887
Reported by: Michael Dexter

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1323

show more ...


# daa2c99c 24-Jun-2024 Val Packett <val@packett.cool>

p9fs: implement working putpages (fix mmap write)

Mostly copied from smbfs. This driver in its current state has the exact
same issue that prevents the generic putpages implementation from
working.

p9fs: implement working putpages (fix mmap write)

Mostly copied from smbfs. This driver in its current state has the exact
same issue that prevents the generic putpages implementation from
working.

Sponsored by: https://www.patreon.com/valpackett
Reviewed by: dfr
Differential Revision: https://reviews.freebsd.org/D45639
MFC after: 3 months

show more ...


# 56e46225 24-Jun-2024 Doug Rabson <dfr@FreeBSD.org>

p9fs: fix lookup of "." for lib9p-based 9P servers

The lib9p implementation takes a strict interpretation of the Twalk RPC
call and returns an error for attempts to lookup ".". The workaround is
to

p9fs: fix lookup of "." for lib9p-based 9P servers

The lib9p implementation takes a strict interpretation of the Twalk RPC
call and returns an error for attempts to lookup ".". The workaround is
to fake the lookup locally.

Reviewed by: Val Packett <val@packett.cool>
MFC after: 3 months

show more ...


# b2ebcd19 19-Jun-2024 Doug Rabson <dfr@FreeBSD.org>

p9fs: Fix the build for 32-bit kernels

MFC after: 3 months


Revision tags: release/14.1.0, release/13.3.0, release/14.0.0, release/13.2.0
# e97ad33a 06-Dec-2022 Doug Rabson <dfr@FreeBSD.org>

Add an implementation of the 9P filesystem

This is derived from swills@ fork of the Juniper virtfs with many
changes by me including bug fixes, style improvements, clearer layering
and more consiste

Add an implementation of the 9P filesystem

This is derived from swills@ fork of the Juniper virtfs with many
changes by me including bug fixes, style improvements, clearer layering
and more consistent logging. The filesystem is renamed to p9fs to better
reflect its function and to prevent possible future confusion with
virtio-fs.

Several updates and fixes from Juniper have been integrated into this
version by Val Packett and these contributions along with the original
Juniper authors are credited below.

To use this with bhyve, add 'virtio_p9fs_load=YES' to loader.conf. The
bhyve virtio-9p device allows access from the guest to files on the host
by mapping a 'sharename' to a host path. It is possible to use p9fs as a
root filesystem by adding this to /boot/loader.conf:

vfs.root.mountfrom="p9fs:sharename"

for non-root filesystems add something like this to /etc/fstab:

sharename /mnt p9fs rw 0 0

In both examples, substitute the share name used on the bhyve command
line.

The 9P filesystem protocol relies on stateful file opens which map
protocol-level FIDs to host file descriptors. The FreeBSD vnode
interface doesn't really support this and we use heuristics to guess the
right FID to use for file operations. This can be confused by privilege
lowering and does not guarantee that the FID created for a given file
open is always used for file operations, even if the calling process is
using the file descriptor from the original open call. Improving this
would involve changes to the vnode interface which is out-of-scope for
this import.

Differential Revision: https://reviews.freebsd.org/D41844
Reviewed by: kib, emaste, dch
MFC after: 3 months
Co-authored-by: Val Packett <val@packett.cool>
Co-authored-by: Ka Ho Ng <kahon@juniper.net>
Co-authored-by: joyu <joyul@juniper.net>
Co-authored-by: Kumara Babu Narayanaswamy <bkumara@juniper.net>

show more ...