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