doff_t
doff_t i_diroff; /* cached i_diroff value. */
doff_t i_offset; /* cached i_offset value. */
doff_t endsearch; /* offset to end directory search */
doff_t i_endoff; /* end of useful stuff in directory */
doff_t i_diroff; /* offset in dir, where we found last entry */
doff_t endsearch;
doff_t slotoffset; /* offset of area with free space */
int *, doff_t *, doff_t *, doff_t *, struct ext2fs_searchslot *);
int *, doff_t *, doff_t *, doff_t *, struct ext2fs_searchslot *);
void ext2_dirbad(struct inode *ip, doff_t offset, char *how);
struct buf **bpp, int *entryoffp, doff_t *offp,
doff_t *prevoffp, doff_t *endusefulp,
doff_t i_diroff; /* cached i_diroff value */
doff_t i_offset; /* cached i_offset value */
doff_t endsearch; /* offset to end directory search */
doff_t prevoff; /* prev entry dp->i_offset */
doff_t enduseful; /* pointer past last used dir slot */
doff_t *offp, doff_t *prevoffp, doff_t *endusefulp,
ext2_dirbad(struct inode *ip, doff_t offset, char *how)
ext2_dirbad(xp, (doff_t)12,
doff_t i_endoff; /* End of useful stuff in directory. */
doff_t i_diroff; /* Offset in dir, where we found last entry. */
doff_t i_offset; /* Offset of free space in directory. */
doff_t da_offset; /* offset of new dir entry in dir blk */
doff_t dm_offset; /* offset of removed dir entry in blk */
doff_t dh_seqoff; /* sequential access optimisation offset */
doff_t ufsdirhash_findfree(struct inode *, int, int *);
doff_t ufsdirhash_enduseful(struct inode *);
int ufsdirhash_lookup(struct inode *, char *, int, doff_t *, struct buf **,
doff_t *);
void ufsdirhash_newblk(struct inode *, doff_t);
void ufsdirhash_add(struct inode *, struct direct *, doff_t);
void ufsdirhash_remove(struct inode *, struct direct *, doff_t);
void ufsdirhash_move(struct inode *, struct direct *, doff_t, doff_t);
void ufsdirhash_dirtrunc(struct inode *, doff_t);
void ufsdirhash_checkblock(struct inode *, char *, doff_t);
doff_t **dh_hash; /* the hash array (2-level) */
doff_t i_endoff; /* End of useful stuff in directory. */
doff_t i_diroff; /* Offset in dir, where we found last entry. */
doff_t i_offset; /* Offset of free space in directory. */
doff_t ufs_get_i_offset(struct inode *ip, const char *file, int line);
void ufs_set_i_offset(struct inode *ip, doff_t off, const char *file, int line);
doff_t ufs_get_i_endoff(struct inode *ip, const char *file, int line);
void ufs_set_i_endoff(struct inode *ip, doff_t off, const char *file, int line);
ufsdirhash_adjfree(struct dirhash *dh, doff_t offset, int diff)
ufsdirhash_findslot(struct dirhash *dh, char *name, int namelen, doff_t offset)
static doff_t
ufsdirhash_getprev(struct direct *dirp, doff_t offset)
doff_t blkoff, prevoff;
doff_t **hash;
ufsdirhash_zone = uma_zcreate("DIRHASH", DH_NBLKOFF * sizeof(doff_t),
doff_t bmask, pos;
ufsdirhash_lookup(struct inode *ip, char *name, int namelen, doff_t *offp,
struct buf **bpp, doff_t *prevoffp)
doff_t blkoff, bmask, offset, prevoff, seqoff;
doff_t
doff_t pos, slotstart;
doff_t
return ((doff_t)(i + 1) * DIRBLKSIZ);
ufsdirhash_add(struct inode *ip, struct direct *dirp, doff_t offset)
ufsdirhash_remove(struct inode *ip, struct direct *dirp, doff_t offset)
ufsdirhash_move(struct inode *ip, struct direct *dirp, doff_t oldoff,
doff_t newoff)
ufsdirhash_newblk(struct inode *ip, doff_t offset)
ufsdirhash_dirtrunc(struct inode *ip, doff_t offset)
static void ufsdirhash_adjfree(struct dirhash *dh, doff_t offset, int diff);
ufsdirhash_checkblock(struct inode *ip, char *buf, doff_t offset)
doff_t offset);
static doff_t ufsdirhash_getprev(struct direct *dp, doff_t offset);
void ufs_dirbad(struct inode *, doff_t, char *);
doff_t off;
doff_t
ufs_set_i_offset(struct inode *ip, doff_t off, const char *file, int line)
doff_t
ufs_set_i_endoff(struct inode *ip, doff_t off, const char *file, int line)
doff_t slotoffset; /* offset of area with free space */
doff_t i_diroff; /* cached i_diroff value. */
doff_t i_offset; /* cached i_offset value. */
doff_t endsearch; /* offset to end directory search */
doff_t prevoff; /* prev entry dp->i_offset */
doff_t enduseful; /* pointer past last used dir slot */
ufs_dirbad(struct inode *ip, doff_t offset, char *how)
doff_t isize;
doff_t i;
doff_t size; /* full size of buf */
doff_t cur; /* offset of current entry */