Loading fs/xfs/xfs_ialloc.c +1 −0 Original line number Diff line number Diff line Loading @@ -1195,6 +1195,7 @@ xfs_dilocate( "(0x%llx)", ino, XFS_AGINO_TO_INO(mp, agno, agino)); } xfs_stack_trace(); #endif /* DEBUG */ return XFS_ERROR(EINVAL); } Loading fs/xfs/xfs_iget.c +8 −9 Original line number Diff line number Diff line Loading @@ -290,7 +290,7 @@ xfs_iget_core( finish_inode: if (ip->i_d.di_mode == 0) { if (!(flags & IGET_CREATE)) if (!(flags & XFS_IGET_CREATE)) return ENOENT; xfs_iocore_inode_reinit(ip); } Loading Loading @@ -320,21 +320,20 @@ xfs_iget_core( * Read the disk inode attributes into a new inode structure and get * a new vnode for it. This should also initialize i_ino and i_mount. */ error = xfs_iread(mp, tp, ino, &ip, bno); if (error) { error = xfs_iread(mp, tp, ino, &ip, bno, (flags & XFS_IGET_BULKSTAT) ? XFS_IMAP_BULKSTAT : 0); if (error) return error; } vn_trace_exit(vp, "xfs_iget.alloc", (inst_t *)__return_address); xfs_inode_lock_init(ip, vp); xfs_iocore_inode_init(ip); if (lock_flags != 0) { if (lock_flags) xfs_ilock(ip, lock_flags); } if ((ip->i_d.di_mode == 0) && !(flags & IGET_CREATE)) { if ((ip->i_d.di_mode == 0) && !(flags & XFS_IGET_CREATE)) { xfs_idestroy(ip); return ENOENT; } Loading fs/xfs/xfs_inode.c +4 −3 Original line number Diff line number Diff line Loading @@ -854,7 +854,8 @@ xfs_iread( xfs_trans_t *tp, xfs_ino_t ino, xfs_inode_t **ipp, xfs_daddr_t bno) xfs_daddr_t bno, uint imap_flags) { xfs_buf_t *bp; xfs_dinode_t *dip; Loading @@ -874,7 +875,7 @@ xfs_iread( * return NULL as well. Set i_blkno to 0 so that xfs_itobp() will * know that this is a new incore inode. */ error = xfs_itobp(mp, tp, ip, &dip, &bp, bno, 0); error = xfs_itobp(mp, tp, ip, &dip, &bp, bno, imap_flags); if (error) { kmem_zone_free(xfs_inode_zone, ip); return error; Loading Loading @@ -1113,7 +1114,7 @@ xfs_ialloc( * to prevent others from looking at until we're done. */ error = xfs_trans_iget(tp->t_mountp, tp, ino, IGET_CREATE, XFS_ILOCK_EXCL, &ip); XFS_IGET_CREATE, XFS_ILOCK_EXCL, &ip); if (error != 0) { return error; } Loading fs/xfs/xfs_inode.h +7 −4 Original line number Diff line number Diff line Loading @@ -389,11 +389,14 @@ typedef struct xfs_inode { (((vfsp)->vfs_flag & VFS_GRPID) || ((pip)->i_d.di_mode & S_ISGID)) /* * xfs_iget.c prototypes. * Flags for xfs_iget() */ #define XFS_IGET_CREATE 0x1 #define XFS_IGET_BULKSTAT 0x2 #define IGET_CREATE 1 /* * xfs_iget.c prototypes. */ void xfs_ihash_init(struct xfs_mount *); void xfs_ihash_free(struct xfs_mount *); void xfs_chash_init(struct xfs_mount *); Loading Loading @@ -425,7 +428,7 @@ int xfs_itobp(struct xfs_mount *, struct xfs_trans *, xfs_inode_t *, xfs_dinode_t **, struct xfs_buf **, xfs_daddr_t, uint); int xfs_iread(struct xfs_mount *, struct xfs_trans *, xfs_ino_t, xfs_inode_t **, xfs_daddr_t); xfs_inode_t **, xfs_daddr_t, uint); int xfs_iread_extents(struct xfs_trans *, xfs_inode_t *, int); int xfs_ialloc(struct xfs_trans *, xfs_inode_t *, mode_t, xfs_nlink_t, xfs_dev_t, struct cred *, xfs_prid_t, Loading fs/xfs/xfs_itable.c +2 −1 Original line number Diff line number Diff line Loading @@ -52,7 +52,8 @@ xfs_bulkstat_one_iget( bhv_vnode_t *vp; int error; error = xfs_iget(mp, NULL, ino, 0, XFS_ILOCK_SHARED, &ip, bno); error = xfs_iget(mp, NULL, ino, XFS_IGET_BULKSTAT, XFS_ILOCK_SHARED, &ip, bno); if (error) { *stat = BULKSTAT_RV_NOTHING; return error; Loading Loading
fs/xfs/xfs_ialloc.c +1 −0 Original line number Diff line number Diff line Loading @@ -1195,6 +1195,7 @@ xfs_dilocate( "(0x%llx)", ino, XFS_AGINO_TO_INO(mp, agno, agino)); } xfs_stack_trace(); #endif /* DEBUG */ return XFS_ERROR(EINVAL); } Loading
fs/xfs/xfs_iget.c +8 −9 Original line number Diff line number Diff line Loading @@ -290,7 +290,7 @@ xfs_iget_core( finish_inode: if (ip->i_d.di_mode == 0) { if (!(flags & IGET_CREATE)) if (!(flags & XFS_IGET_CREATE)) return ENOENT; xfs_iocore_inode_reinit(ip); } Loading Loading @@ -320,21 +320,20 @@ xfs_iget_core( * Read the disk inode attributes into a new inode structure and get * a new vnode for it. This should also initialize i_ino and i_mount. */ error = xfs_iread(mp, tp, ino, &ip, bno); if (error) { error = xfs_iread(mp, tp, ino, &ip, bno, (flags & XFS_IGET_BULKSTAT) ? XFS_IMAP_BULKSTAT : 0); if (error) return error; } vn_trace_exit(vp, "xfs_iget.alloc", (inst_t *)__return_address); xfs_inode_lock_init(ip, vp); xfs_iocore_inode_init(ip); if (lock_flags != 0) { if (lock_flags) xfs_ilock(ip, lock_flags); } if ((ip->i_d.di_mode == 0) && !(flags & IGET_CREATE)) { if ((ip->i_d.di_mode == 0) && !(flags & XFS_IGET_CREATE)) { xfs_idestroy(ip); return ENOENT; } Loading
fs/xfs/xfs_inode.c +4 −3 Original line number Diff line number Diff line Loading @@ -854,7 +854,8 @@ xfs_iread( xfs_trans_t *tp, xfs_ino_t ino, xfs_inode_t **ipp, xfs_daddr_t bno) xfs_daddr_t bno, uint imap_flags) { xfs_buf_t *bp; xfs_dinode_t *dip; Loading @@ -874,7 +875,7 @@ xfs_iread( * return NULL as well. Set i_blkno to 0 so that xfs_itobp() will * know that this is a new incore inode. */ error = xfs_itobp(mp, tp, ip, &dip, &bp, bno, 0); error = xfs_itobp(mp, tp, ip, &dip, &bp, bno, imap_flags); if (error) { kmem_zone_free(xfs_inode_zone, ip); return error; Loading Loading @@ -1113,7 +1114,7 @@ xfs_ialloc( * to prevent others from looking at until we're done. */ error = xfs_trans_iget(tp->t_mountp, tp, ino, IGET_CREATE, XFS_ILOCK_EXCL, &ip); XFS_IGET_CREATE, XFS_ILOCK_EXCL, &ip); if (error != 0) { return error; } Loading
fs/xfs/xfs_inode.h +7 −4 Original line number Diff line number Diff line Loading @@ -389,11 +389,14 @@ typedef struct xfs_inode { (((vfsp)->vfs_flag & VFS_GRPID) || ((pip)->i_d.di_mode & S_ISGID)) /* * xfs_iget.c prototypes. * Flags for xfs_iget() */ #define XFS_IGET_CREATE 0x1 #define XFS_IGET_BULKSTAT 0x2 #define IGET_CREATE 1 /* * xfs_iget.c prototypes. */ void xfs_ihash_init(struct xfs_mount *); void xfs_ihash_free(struct xfs_mount *); void xfs_chash_init(struct xfs_mount *); Loading Loading @@ -425,7 +428,7 @@ int xfs_itobp(struct xfs_mount *, struct xfs_trans *, xfs_inode_t *, xfs_dinode_t **, struct xfs_buf **, xfs_daddr_t, uint); int xfs_iread(struct xfs_mount *, struct xfs_trans *, xfs_ino_t, xfs_inode_t **, xfs_daddr_t); xfs_inode_t **, xfs_daddr_t, uint); int xfs_iread_extents(struct xfs_trans *, xfs_inode_t *, int); int xfs_ialloc(struct xfs_trans *, xfs_inode_t *, mode_t, xfs_nlink_t, xfs_dev_t, struct cred *, xfs_prid_t, Loading
fs/xfs/xfs_itable.c +2 −1 Original line number Diff line number Diff line Loading @@ -52,7 +52,8 @@ xfs_bulkstat_one_iget( bhv_vnode_t *vp; int error; error = xfs_iget(mp, NULL, ino, 0, XFS_ILOCK_SHARED, &ip, bno); error = xfs_iget(mp, NULL, ino, XFS_IGET_BULKSTAT, XFS_ILOCK_SHARED, &ip, bno); if (error) { *stat = BULKSTAT_RV_NOTHING; return error; Loading