lofs_info.h revision 71a535e3b24d87fb6be3793380f86bd09f2768ac
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
* Loopback mount info - one per mount
*/
#ifndef _SYS_FS_LOFS_INFO_H
#define _SYS_FS_LOFS_INFO_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
struct lnode;
struct lobucket {
/* Pad up to 64-byte boundary to avoid false sharing */
#ifdef _LP64
char _pad[44];
#else
char _pad[48];
#endif
};
struct lo_retired_ht {
struct lo_retired_ht *lrh_next;
};
struct loinfo {
int li_mflag; /* mount flags to inherit */
int li_dflag; /* mount flags to not inherit */
int li_flag; /* filesystem behavior flags */
};
/* inheritable mount flags - propagated from real vfs to loopback */
#define INHERIT_VFS_FLAG \
/*
* "nosub" is used to provide NFS server-like semantics for lo_lookup(): never
* traverse mount points for sub-mounts. The lookup will instead look under
* the mount point.
*/
#define MNTOPT_LOFS_NOSUB "nosub"
#define MNTOPT_LOFS_SUB "sub"
/*
* Flag values (for li_flag)
*/
/*
* lfsnodes are allocated as new real vfs's are encountered
* when looking up things in a loopback name space
* It contains a new vfs which is paired with the real vfs
* so that vfs ops (fsstat) can get to the correct real vfs
* given just a loopback vfs
*/
struct lfsnode {
};
#ifdef _KERNEL
extern void lofs_subrinit(void);
extern void lofs_subrfini(void);
extern const struct fs_operation_def lo_vnodeops_template[];
extern struct vnodeops *lo_vnodeops;
#endif /* _KERNEL */
#ifdef __cplusplus
}
#endif
#endif /* _SYS_FS_LOFS_INFO_H */