Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/fuse/fuse_ipc.h
Show First 20 Lines • Show All 227 Lines • ▼ Show 20 Lines | |||||
#define FSESS_DAEMON_CAN_SPY 0x0010 /* let non-owners access this fs */ | #define FSESS_DAEMON_CAN_SPY 0x0010 /* let non-owners access this fs */ | ||||
/* (and being observed by the daemon) */ | /* (and being observed by the daemon) */ | ||||
#define FSESS_PUSH_SYMLINKS_IN 0x0020 /* prefix absolute symlinks with mp */ | #define FSESS_PUSH_SYMLINKS_IN 0x0020 /* prefix absolute symlinks with mp */ | ||||
#define FSESS_DEFAULT_PERMISSIONS 0x0040 /* kernel does permission checking */ | #define FSESS_DEFAULT_PERMISSIONS 0x0040 /* kernel does permission checking */ | ||||
#define FSESS_ASYNC_READ 0x1000 /* allow multiple reads of some file */ | #define FSESS_ASYNC_READ 0x1000 /* allow multiple reads of some file */ | ||||
#define FSESS_POSIX_LOCKS 0x2000 /* daemon supports POSIX locks */ | #define FSESS_POSIX_LOCKS 0x2000 /* daemon supports POSIX locks */ | ||||
#define FSESS_EXPORT_SUPPORT 0x10000 /* daemon supports NFS-style lookups */ | #define FSESS_EXPORT_SUPPORT 0x10000 /* daemon supports NFS-style lookups */ | ||||
#define FSESS_INTR 0x20000 /* interruptible mounts */ | #define FSESS_INTR 0x20000 /* interruptible mounts */ | ||||
#define FSESS_WARN_SHORT_WRITE 0x40000 /* Short write without direct_io */ | |||||
#define FSESS_WARN_WROTE_LONG 0x80000 /* Wrote more data than provided */ | |||||
#define FSESS_WARN_LSEXTATTR_LONG 0x100000 /* Returned too many extattrs */ | |||||
#define FSESS_WARN_CACHE_INCOHERENT 0x200000 /* Read cache incoherent */ | |||||
#define FSESS_WARN_WB_CACHE_INCOHERENT 0x400000 /* WB cache incoherent */ | |||||
emaste: might we end up with enough distinct warnings to run out of flag bits?
(just add a second flags… | |||||
Done Inline ActionsYep, but the flags field never leaves this module. So we can add more fields or reassign bits at will. asomers: Yep, but the flags field never leaves this module. So we can add more fields or reassign bits… | |||||
Not Done Inline ActionsOk, fair enough. emaste: Ok, fair enough. | |||||
#define FSESS_MNTOPTS_MASK ( \ | #define FSESS_MNTOPTS_MASK ( \ | ||||
FSESS_DAEMON_CAN_SPY | FSESS_PUSH_SYMLINKS_IN | \ | FSESS_DAEMON_CAN_SPY | FSESS_PUSH_SYMLINKS_IN | \ | ||||
FSESS_DEFAULT_PERMISSIONS | FSESS_INTR) | FSESS_DEFAULT_PERMISSIONS | FSESS_INTR) | ||||
extern int fuse_data_cache_mode; | extern int fuse_data_cache_mode; | ||||
static inline struct fuse_data * | static inline struct fuse_data * | ||||
fuse_get_mpdata(struct mount *mp) | fuse_get_mpdata(struct mount *mp) | ||||
▲ Show 20 Lines • Show All 144 Lines • ▼ Show 20 Lines | |||||
static inline bool | static inline bool | ||||
fuse_libabi_geq(struct fuse_data *data, uint32_t abi_maj, uint32_t abi_min) | fuse_libabi_geq(struct fuse_data *data, uint32_t abi_maj, uint32_t abi_min) | ||||
{ | { | ||||
return (data->fuse_libabi_major > abi_maj || | return (data->fuse_libabi_major > abi_maj || | ||||
(data->fuse_libabi_major == abi_maj && | (data->fuse_libabi_major == abi_maj && | ||||
data->fuse_libabi_minor >= abi_min)); | data->fuse_libabi_minor >= abi_min)); | ||||
} | } | ||||
/* Print msg as a warning to the console, but no more than once per session */ | |||||
void fuse_warn(struct fuse_data *data, unsigned flag, const char *msg); | |||||
struct fuse_data *fdata_alloc(struct cdev *dev, struct ucred *cred); | struct fuse_data *fdata_alloc(struct cdev *dev, struct ucred *cred); | ||||
void fdata_trydestroy(struct fuse_data *data); | void fdata_trydestroy(struct fuse_data *data); | ||||
void fdata_set_dead(struct fuse_data *data); | void fdata_set_dead(struct fuse_data *data); | ||||
static inline bool | static inline bool | ||||
fdata_get_dead(struct fuse_data *data) | fdata_get_dead(struct fuse_data *data) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 52 Lines • Show Last 20 Lines |
might we end up with enough distinct warnings to run out of flag bits?
(just add a second flags field if/when that happens?)