Something went wrong. Try again.
(I'm so sorry!) Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940/* SPDX-License-Identifier: GPL-2.0 *//* * DOS share management for lockd. * * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de> */
#ifndef _LOCKD_SHARE_H#define _LOCKD_SHARE_H
#include <linux/bits.h>
/* Synthetic svid for lockowner lookup during share operations */#define LOCKD_SHARE_SVID (~(u32)0)
/* One bit per (access, deny) pair; index = (access << 2) | deny */#define LOCKD_FSH_BIT(a, d) BIT(((a) << 2) | (d))
/* * DOS share for a specific file */struct lockd_share { struct lockd_share * s_next; /* linked list */ struct nlm_host * s_host; /* client host */ struct nlm_file * s_file; /* shared file */ struct xdr_netobj s_owner; /* owner handle */ u32 s_access; /* access mode */ u32 s_mode; /* deny mode */ u16 s_access_deny_bmap; /* held (access, deny) pairs */};
__be32 nlmsvc_share_file(struct nlm_host *host, struct nlm_file *file, struct xdr_netobj *oh, u32 access, u32 mode);__be32 nlmsvc_unshare_file(struct nlm_host *host, struct nlm_file *file, struct xdr_netobj *oh, u32 access, u32 mode);void nlmsvc_traverse_shares(struct nlm_host *, struct nlm_file *, nlm_host_match_fn_t);
#endif /* _LOCKD_SHARE_H */