History log of /src/sys/ufs/lfs/ulfs_extattr.c |
Revision | | Date | Author | Comments |
1.18 |
| 10-Feb-2024 |
andvar | Fix various typos in comments, log messages and documentation.
|
1.17 |
| 29-Jun-2021 |
dholland | Add containment for the cloning devices hack in vn_open.
Cloning devices (and also things like /dev/stderr) work by allocating a struct file, stuffing it in the file table (which is a layer violation), stuffing the file descriptor number for it in a magic field of struct lwp (which is gross), and then "failing" with one of two magic errnos, EDUPFD or EMOVEFD.
Before this commit, all callers of vn_open in the kernel (there are quite a few) were expected to check for these errors and handle the situation. Needless to say, none of them except for open() itself did, resulting in internal negative errnos being returned to userspace.
This hack is fairly deeply rooted and cannot be eliminated all at once. This commit adds logic to handle the magic errnos inside vn_open; now on success vn_open returns either a vnode or an integer file descriptor, along with a flag that says whether the underlying code requested EDUPFD or EMOVEFD. Callers not prepared to cope with file descriptors can pass NULL for the extra return values, in which case if a file descriptor would be produced vn_open fails with EOPNOTSUPP.
Since I'm rearranging vn_open's signature anyway, stop exposing struct nameidata. Instead, take three arguments: an optional vnode to use as the starting point (like openat()), the path, and additional namei flags to use, restricted to NOCHROOT and TRYEMULROOT. (Other namei behavior, e.g. NOFOLLOW, can be requested via the open flags.)
This change requires a kernel bump. Ride the one an hour ago. (That was supposed to be coordinated; did not intend to let an hour slip by. My fault.)
|
1.16 |
| 16-May-2020 |
christos | branches: 1.16.6; Add ACL support for FFS. From FreeBSD.
|
1.15 |
| 17-Jan-2020 |
ad | VFS_VGET(), VFS_ROOT(), VFS_FHTOVP(): give them a "int lktype" argument, to allow us to get shared locks (or no lock) on the returned vnode. Matches FreeBSD.
|
1.14 |
| 09-Nov-2016 |
dholland | branches: 1.14.16; 1.14.22; Apply ufs_extattr.c 1.48: Explain why the lock in here needs to be recursive. Related to PR 46997.
ufs_extattr 1.47 was also committed directly here, so this file is still fully synced with it.
|
1.13 |
| 07-Jul-2016 |
msaitoh | branches: 1.13.2; KNF. Remove extra spaces. No functional change.
|
1.12 |
| 20-Jun-2016 |
dholland | Merge -r1.46 of ufs_extattr.c: Fix uninitialized mutex usage
|
1.11 |
| 20-Jun-2016 |
dholland | Merge -r1.45 of ufs_extattr.c: Fix UFS1 extended attribute backend autocreation deadlock
|
1.10 |
| 20-Jun-2016 |
dholland | Merge -r1.44 of ufs_extattr.c and related change -r1.302 of ffs_vfops.c: fix use-after-free on failed unmount with extended attributes enabled.
|
1.9 |
| 20-Jun-2016 |
dholland | More already-merged or equivalent changes:
ufs_dirhash.c 1.36 corresponds to ulfs_dirhash.c 1.8 ufs_extattr.c 1.43 corresponds to ulfs_extattr.c 1.7 ufs_lookup.c 1.126 does not apply to lfs ufs_lookup.c 1.127 we already have ufs_lookup.c 1.128 does not apply to lfs ufs_lookup.c 1.129 corresponds to ulfs_lookup.c 1.19 ufs_quota1.c 1.19 corresponds to ulfs_quota1.c 1.7 ufs_quota1.c 1.20 corresponds to ulfs_quota1.c 1.8 ufs_quota2.c 1.36 we have equivalent changes for ufs_rename.c 1.9 corresponds to lfs_rename.c 1.5 ufs_rename.c 1.10 corresponds to lfs_rename.c 1.6 ufs_vnops.c 1.219 corresponds to lfs_vnops.c 1.260 and ulfs_vnops.c 1.19 ufs_vnops.c 1.220 corresponds to lfs_vnops.c 1.261 and ulfs_vnops.c 1.20 ufs_vnops.c 1.221 was superseded by later changes ufs_vnops.c 1.222 got fixed independently in lfs
|
1.8 |
| 19-Jun-2016 |
dholland | Mark ufs file versions we're already synced with.
|
1.7 |
| 07-Feb-2014 |
hannken | branches: 1.7.4; 1.7.8; Change vnode operation lookup to return the resulting vnode *vpp unlocked. Change cache_lookup() to return an unlocked vnode.
Discussed on tech-kern@
Welcome to 6.99.31
|
1.6 |
| 08-Jun-2013 |
dholland | branches: 1.6.2; 1.6.4; ulfs_dir.h has been emptied; remove it.
|
1.5 |
| 08-Jun-2013 |
dholland | DIRBLKSIZ -> LFS_DIRBLKSIZ DIRECTSIZ -> LFS_DIRECTSIZ DIRSIZ -> LFS_DIRSIZ OLDDIRFMT -> LFS_OLDDIRFMT NEWDIRFMT -> LFS_NEWDIRFMT IFTODT -> LFS_IFTODT DTTOIF -> LFS_DTTOIF
|
1.4 |
| 06-Jun-2013 |
dholland | Split lfs from ufs step 4:
Massedit all ufs symbols to be "ulfs" instead, to make sure there are no conflicts with ufs. Confirmed with grep.
(This required changing a few comments that maybe should have been left alone to say "ulfs", but we'll survive that.)
|
1.3 |
| 06-Jun-2013 |
dholland | Split lfs from ufs step 3: rearrange config stuff. Add new options: LFS_EI LFS_DIRHASH LFS_EXTATTR LFS_EXTATTR_AUTOSTART LFS_QUOTA LFS_QUOTA2
and update code referring to the corresponding FFS and UFS config symbols to use the LFS versions. Disable the one extant reference to APPLE_UFS in the ulfs files. Use opt_lfs.h only, not opt_ffs.h.
|
1.2 |
| 06-Jun-2013 |
dholland | Split lfs from ufs, part 2:
Change all <ufs/ufs/foo.h> includes to <ufs/lfs/ulfs_foo.h>.
|
1.1 |
| 06-Jun-2013 |
dholland | Split lfs from ufs, part 1: cut and paste 15000 lines of ufs as "ulfs".
These are verbatim copies except that I've preserved the ufs rcsids for reference. Also, ufs/quota.h -> ulfs_quotacommon.h ufs/ufs_quota.h -> ulfs_quota.h
Splitting lfs from ufs was ok'd by core some years ago. This is not from my original tree, which became unmergeable after the several sets of quota changes; I've done the work over again over the last couple days.
|
1.6.4.1 |
| 18-May-2014 |
rmind | sync with head
|
1.6.2.4 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.6.2.3 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.6.2.2 |
| 23-Jun-2013 |
tls | resync from head
|
1.6.2.1 |
| 08-Jun-2013 |
tls | file ulfs_extattr.c was added on branch tls-maxphys on 2013-06-23 06:18:39 +0000
|
1.7.8.2 |
| 05-Dec-2016 |
skrll | Sync with HEAD
|
1.7.8.1 |
| 09-Jul-2016 |
skrll | Sync with HEAD
|
1.7.4.2 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.7.4.1 |
| 07-Feb-2014 |
yamt | file ulfs_extattr.c was added on branch yamt-pagecache on 2014-05-22 11:41:19 +0000
|
1.13.2.1 |
| 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.14.22.1 |
| 17-Jan-2020 |
ad | Sync with head.
|
1.14.16.1 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.16.6.1 |
| 01-Aug-2021 |
thorpej | Sync with HEAD.
|