4 * Copyright (C) 1998 Carnegie Mellon University
8 #ifndef _LINUX_CODA_FS_I
9 #define _LINUX_CODA_FS_I
12 #include <linux/types.h>
13 #include <linux/list.h>
14 #include <linux/coda.h>
19 struct coda_inode_info
{
20 struct CodaFid c_fid
; /* Coda identifier */
21 u_short c_flags
; /* flags (see below) */
22 struct list_head c_cilist
; /* list of all coda inodes */
23 unsigned int c_mapcount
; /* nr of times this inode is mapped */
24 unsigned int c_cached_epoch
; /* epoch for cached permissions */
25 vuid_t c_uid
; /* fsuid for cached permissions */
26 unsigned int c_cached_perm
; /* cached access permissions */
27 struct inode vfs_inode
;
31 * coda fs file private data
33 #define CODA_MAGIC 0xC0DAC0DA
34 struct coda_file_info
{
35 int cfi_magic
; /* magic number */
36 struct file
*cfi_container
; /* container file for this cnode */
37 unsigned int cfi_mapcount
; /* nr of times this file is mapped */
40 #define CODA_FTOC(file) ((struct coda_file_info *)((file)->private_data))
43 #define C_VATTR 0x1 /* Validity of vattr in inode */
44 #define C_FLUSH 0x2 /* used after a flush */
45 #define C_DYING 0x4 /* from venus (which died) */
48 int coda_cnode_make(struct inode
**, struct CodaFid
*, struct super_block
*);
49 struct inode
*coda_iget(struct super_block
*sb
, struct CodaFid
*fid
, struct coda_vattr
*attr
);
50 int coda_cnode_makectl(struct inode
**inode
, struct super_block
*sb
);
51 struct inode
*coda_fid_to_inode(struct CodaFid
*fid
, struct super_block
*sb
);
52 void coda_replace_fid(struct inode
*, struct CodaFid
*, struct CodaFid
*);