f2af793db0
This patch makes nlm_traverse{locks,blocks,shares} and friends use a function pointer rather than a "action" enum. This function pointer is given two nlm_hosts (one given by the caller, the other taken from the lock/block/share currently visited), and is free to do with them as it wants. If it returns a non-zero value, the lockd/block/share is released. Signed-off-by: Olaf Kirch <okir@suse.de> Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
31 lines
833 B
C
31 lines
833 B
C
/*
|
|
* linux/include/linux/lockd/share.h
|
|
*
|
|
* DOS share management for lockd.
|
|
*
|
|
* Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
|
|
*/
|
|
|
|
#ifndef LINUX_LOCKD_SHARE_H
|
|
#define LINUX_LOCKD_SHARE_H
|
|
|
|
/*
|
|
* DOS share for a specific file
|
|
*/
|
|
struct nlm_share {
|
|
struct nlm_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 */
|
|
};
|
|
|
|
u32 nlmsvc_share_file(struct nlm_host *, struct nlm_file *,
|
|
struct nlm_args *);
|
|
u32 nlmsvc_unshare_file(struct nlm_host *, struct nlm_file *,
|
|
struct nlm_args *);
|
|
void nlmsvc_traverse_shares(struct nlm_host *, struct nlm_file *,
|
|
nlm_host_match_fn_t);
|
|
|
|
#endif /* LINUX_LOCKD_SHARE_H */
|