doff_t
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 i_offset; /* offset of free space in directory */
doff_t endsearch;
doff_t slotoffset; /* offset of area with free space */
const char *, int , int *, doff_t *, doff_t *, doff_t *,
int *, doff_t *, doff_t *, doff_t *, struct ext2fs_searchslot *);
struct buf **bpp, int *entryoffp, doff_t *offp,
doff_t *prevoffp, doff_t *endusefulp, struct ext2fs_searchslot *ss)
doff_t slotoffset; /* offset of area with free space */
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 i_offset; /* cached i_offset value */
doff_t *offp)
doff_t *offp, doff_t *prevoffp, doff_t *endusefulp,
ufs_dirbad(VTOI(tvp), (doff_t)0,
doff_t from_prev_start, from_prev_end, to_start, to_end;
doff_t search_start, search_end;
doff_t offset; /* Offset of entry we're examining. */
ufs_dirbad(VTOI(vp), (doff_t)12, "bad `..' entry");
ufs_dirbad(VTOI(vp), (doff_t)12,
doff_t ulr_endoff; /* End of useful stuff in directory. */
doff_t ulr_diroff; /* Offset in dir, where we found last entry. */
doff_t ulr_offset; /* Offset of free space in directory. */
doff_t from_prev_start, from_prev_end, to_start, to_end;
doff_t search_start, search_end;
doff_t offset; /* Offset of entry we're examining. */
ulfs_dirbad(VTOI(tvp), (doff_t)0,
static doff_t
doff_t offset, int dirblksiz)
doff_t blkoff, prevoff;
doff_t **hash;
doff_t bmask, pos;
ulfsdirhash_lookup(struct inode *ip, const char *name, int namelen, doff_t *offp,
struct buf **bpp, doff_t *prevoffp)
doff_t blkoff, bmask, offset, prevoff;
doff_t
doff_t pos, slotstart;
doff_t
return ((doff_t)(i + 1) * dirblksiz);
ulfsdirhash_add(struct inode *ip, LFS_DIRHEADER *dirp, doff_t offset)
ulfsdirhash_remove(struct inode *ip, LFS_DIRHEADER *dirp, doff_t offset)
ulfsdirhash_move(struct inode *ip, LFS_DIRHEADER *dirp, doff_t oldoff,
doff_t newoff)
ulfsdirhash_newblk(struct inode *ip, doff_t offset)
ulfsdirhash_dirtrunc(struct inode *ip, doff_t offset)
static void ulfsdirhash_adjfree(struct dirhash *dh, doff_t offset, int diff,
ulfsdirhash_checkblock(struct inode *ip, char *sbuf, doff_t offset)
int namelen, doff_t offset);
static doff_t ulfsdirhash_getprev(struct lfs *fs, LFS_DIRHEADER *dp,
doff_t offset, int dirblksiz);
ulfsdirhash_adjfree(struct dirhash *dh, doff_t offset, int diff, int dirblksiz)
doff_t offset)
doff_t dh_seqoff; /* sequential access optimisation offset */
doff_t ulfsdirhash_findfree(struct inode *, int, int *);
doff_t ulfsdirhash_enduseful(struct inode *);
int ulfsdirhash_lookup(struct inode *, const char *, int, doff_t *,
struct buf **, doff_t *);
void ulfsdirhash_newblk(struct inode *, doff_t);
void ulfsdirhash_add(struct inode *, LFS_DIRHEADER *, doff_t);
void ulfsdirhash_remove(struct inode *, LFS_DIRHEADER *, doff_t);
void ulfsdirhash_move(struct inode *, LFS_DIRHEADER *, doff_t, doff_t);
void ulfsdirhash_dirtrunc(struct inode *, doff_t);
void ulfsdirhash_checkblock(struct inode *, char *, doff_t);
doff_t **dh_hash; /* the hash array (2-level) */
void ulfs_dirbad(struct inode *, doff_t, const char *);
doff_t off;
doff_t slotoffset; /* offset of area with free space.
doff_t endsearch; /* offset to end directory search */
doff_t prevoff; /* previous value of ulr_offset */
doff_t enduseful; /* pointer past last used dir slot.
ulfs_dirbad(struct inode *ip, doff_t offset, const char *how)
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 *, const 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 ulr_endoff; /* End of useful stuff in directory. */
doff_t ulr_diroff; /* Offset in dir, where we found last entry. */
doff_t ulr_offset; /* Offset of free space in directory. */
static doff_t
ufsdirhash_getprev(struct direct *dirp, doff_t offset, int dirblksiz)
doff_t blkoff, prevoff;
doff_t **hash;
doff_t bmask, pos;
ufsdirhash_lookup(struct inode *ip, const char *name, int namelen, doff_t *offp,
struct buf **bpp, doff_t *prevoffp)
doff_t blkoff, bmask, offset, prevoff;
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)
ufsdirhash_checkblock(struct inode *ip, char *sbuf, doff_t offset)
static void ufsdirhash_adjfree(struct dirhash *dh, doff_t offset, int diff,
int namelen, doff_t offset);
static doff_t ufsdirhash_getprev(struct direct *dp, doff_t offset,
ufsdirhash_adjfree(struct dirhash *dh, doff_t offset, int diff, int dirblksiz)
doff_t offset)
void ufs_dirbad(struct inode *, doff_t, const char *);
doff_t offset; /* offset of area with free space.
calc_count(struct ufs_lookup_results *results, int dirblksiz, doff_t prevoff)
doff_t off;
static doff_t
doff_t enduseful = ufsdirhash_enduseful(dp);
slot_update(struct slotinfo *slot, int size, uint16_t reclen, doff_t offset)
doff_t prevoff, doff_t enduseful, const struct inode *ip,
doff_t endsearch; /* offset to end directory search */
doff_t prevoff; /* previous value of ulr_offset */
doff_t enduseful; /* pointer past last used dir slot.
ufs_dirbad(struct inode *ip, doff_t offset, const char *how)
ufs_dirbad(VTOI(tvp), (doff_t)0,
doff_t from_prev_start, from_prev_end, to_start, to_end;
doff_t search_start, search_end;
doff_t offset; /* Offset of entry we're examining. */
doff_t size; /* full size of buf */
doff_t cur; /* offset of current entry */
doff_t i;