X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Fxfs%2Fxfs_inode.h;h=37e1c316f3b6bd520c37d4bea1a86aeaf0375a6e;hb=f7f1b0f1e2fbadeab12d24236000e778aa9b1ead;hp=dc32e4aa8e536a3b1a66c241172522b3cdb7613b;hpb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;p=linux-2.6.git diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index dc32e4aa8..37e1c316f 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h @@ -182,10 +182,6 @@ typedef struct xfs_ihash { uint ih_version; } xfs_ihash_t; -/* - * Inode hashing and hash bucket locking. - */ -#define XFS_BUCKETS(mp) (37*(mp)->m_sb.sb_agcount-1) #define XFS_IHASH(mp,ino) ((mp)->m_ihash + (((uint)(ino)) % (mp)->m_ihsize)) /* @@ -193,7 +189,6 @@ typedef struct xfs_ihash { * find inodes that share a cluster and can be flushed to disk at the same * time. */ - typedef struct xfs_chashlist { struct xfs_chashlist *chl_next; struct xfs_inode *chl_ip; @@ -207,6 +202,8 @@ typedef struct xfs_chash { lock_t ch_lock; } xfs_chash_t; +#define XFS_CHASH(mp,blk) ((mp)->m_chash + (((uint)blk) % (mp)->m_chsize)) + /* * This is the xfs in-core inode structure. @@ -381,6 +378,7 @@ void xfs_ifork_next_set(xfs_inode_t *ip, int w, int n); #define XFS_IRECLAIM 0x0008 /* we have started reclaiming this inode */ #define XFS_ISTALE 0x0010 /* inode has been staled */ #define XFS_IRECLAIMABLE 0x0020 /* inode can be reclaimed */ +#define XFS_INEW 0x0040 /* * Flags for inode locking. @@ -448,12 +446,6 @@ xfs_inode_t *xfs_bhvtoi(struct bhv_desc *bhvp); #define BHV_IS_XFS(bdp) (BHV_OPS(bdp) == &xfs_vnodeops) -/* - * Pick the inode cluster hash bucket - * (m_chash is the same size as m_ihash) - */ -#define XFS_CHASH(mp,blk) ((mp)->m_chash + (((uint)blk) % (mp)->m_chsize)) - /* * For multiple groups support: if S_ISGID bit is set in the parent * directory, group of new file is set to that of the parent, and @@ -465,6 +457,9 @@ xfs_inode_t *xfs_bhvtoi(struct bhv_desc *bhvp); /* * xfs_iget.c prototypes. */ + +#define IGET_CREATE 1 + void xfs_ihash_init(struct xfs_mount *); void xfs_ihash_free(struct xfs_mount *); void xfs_chash_init(struct xfs_mount *); @@ -473,7 +468,7 @@ xfs_inode_t *xfs_inode_incore(struct xfs_mount *, xfs_ino_t, struct xfs_trans *); void xfs_inode_lock_init(xfs_inode_t *, struct vnode *); int xfs_iget(struct xfs_mount *, struct xfs_trans *, xfs_ino_t, - uint, xfs_inode_t **, xfs_daddr_t); + uint, uint, xfs_inode_t **, xfs_daddr_t); void xfs_iput(xfs_inode_t *, uint); void xfs_iput_new(xfs_inode_t *, uint); void xfs_ilock(xfs_inode_t *, uint); @@ -500,12 +495,13 @@ int xfs_itobp(struct xfs_mount *, struct xfs_trans *, int xfs_iread(struct xfs_mount *, struct xfs_trans *, xfs_ino_t, xfs_inode_t **, xfs_daddr_t); int xfs_iread_extents(struct xfs_trans *, xfs_inode_t *, int); -int xfs_ialloc(struct xfs_trans *, xfs_inode_t *, mode_t, nlink_t, - xfs_dev_t, struct cred *, xfs_prid_t, int, - struct xfs_buf **, boolean_t *, xfs_inode_t **); +int xfs_ialloc(struct xfs_trans *, xfs_inode_t *, mode_t, + xfs_nlink_t, xfs_dev_t, struct cred *, xfs_prid_t, + int, struct xfs_buf **, boolean_t *, xfs_inode_t **); void xfs_xlate_dinode_core(xfs_caddr_t, struct xfs_dinode_core *, - int, xfs_arch_t); -uint xfs_dic2xflags(struct xfs_dinode_core *, xfs_arch_t); + int); +uint xfs_ip2xflags(struct xfs_inode *); +uint xfs_dic2xflags(struct xfs_dinode_core *); int xfs_ifree(struct xfs_trans *, xfs_inode_t *, struct xfs_bmap_free *); void xfs_itruncate_start(xfs_inode_t *, uint, xfs_fsize_t);