diff options
author | pjd <pjd@FreeBSD.org> | 2009-07-27 14:52:34 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2009-07-27 14:52:34 +0000 |
commit | c67ad86c8134402ad71714934267a859d0ed6a69 (patch) | |
tree | a5bb254095943074f582cd95195e5368500bb738 /sys/cddl/contrib/opensolaris/uts/common/fs/zfs | |
parent | 243b95729ca5c07a39bdb7e327868460a6884474 (diff) | |
download | FreeBSD-src-c67ad86c8134402ad71714934267a859d0ed6a69.zip FreeBSD-src-c67ad86c8134402ad71714934267a859d0ed6a69.tar.gz |
We don't support ephemeral IDs in FreeBSD and without this fix ZFS can
panic when in zfs_fuid_create_cred() when userid is negative. It is
converted to unsigned value which makes IS_EPHEMERAL() macro to
incorrectly report that this is ephemeral ID. The most reasonable
solution for now is to always report that the given ID is not ephemeral.
PR: kern/132337
Submitted by: Matthew West <freebsd@r.zeeb.org>
Tested by: Thomas Backman <serenity@exscape.org>, Michael Reifenberger <mike@reifenberger.com>
Approved by: re (kib)
MFC after: 2 weeks
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs')
-rw-r--r-- | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h index a0cf440..c05ee20 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h @@ -78,7 +78,11 @@ extern "C" { /* * Is ID ephemeral? */ +#ifdef TODO #define IS_EPHEMERAL(x) (x > MAXUID) +#else +#define IS_EPHEMERAL(x) (0) +#endif /* * Should we use FUIDs? |