Loading fs/xfs/linux-2.6/xfs_buf.c +1 −7 Original line number Diff line number Diff line Loading @@ -440,12 +440,7 @@ _xfs_buf_find( ASSERT(btp == bp->b_target); if (bp->b_file_offset == range_base && bp->b_buffer_length == range_length) { /* * If we look at something, bring it to the * front of the list for next time. */ atomic_inc(&bp->b_hold); list_move(&bp->b_hash_list, &hash->bh_list); goto found; } } Loading Loading @@ -1443,8 +1438,7 @@ xfs_alloc_bufhash( { unsigned int i; btp->bt_hashshift = external ? 3 : 8; /* 8 or 256 buckets */ btp->bt_hashmask = (1 << btp->bt_hashshift) - 1; btp->bt_hashshift = external ? 3 : 12; /* 8 or 4096 buckets */ btp->bt_hash = kmem_zalloc_large((1 << btp->bt_hashshift) * sizeof(xfs_bufhash_t)); for (i = 0; i < (1 << btp->bt_hashshift); i++) { Loading fs/xfs/linux-2.6/xfs_buf.h +0 −1 Original line number Diff line number Diff line Loading @@ -137,7 +137,6 @@ typedef struct xfs_buftarg { size_t bt_smask; /* per device buffer hash table */ uint bt_hashmask; uint bt_hashshift; xfs_bufhash_t *bt_hash; Loading fs/xfs/xfs_vnodeops.c +10 −3 Original line number Diff line number Diff line Loading @@ -2299,15 +2299,22 @@ xfs_alloc_file_space( e = allocatesize_fsb; } /* * The transaction reservation is limited to a 32-bit block * count, hence we need to limit the number of blocks we are * trying to reserve to avoid an overflow. We can't allocate * more than @nimaps extents, and an extent is limited on disk * to MAXEXTLEN (21 bits), so use that to enforce the limit. */ resblks = min_t(xfs_fileoff_t, (e - s), (MAXEXTLEN * nimaps)); if (unlikely(rt)) { resrtextents = qblocks = (uint)(e - s); resrtextents = qblocks = resblks; resrtextents /= mp->m_sb.sb_rextsize; resblks = XFS_DIOSTRAT_SPACE_RES(mp, 0); quota_flag = XFS_QMOPT_RES_RTBLKS; } else { resrtextents = 0; resblks = qblocks = \ XFS_DIOSTRAT_SPACE_RES(mp, (uint)(e - s)); resblks = qblocks = XFS_DIOSTRAT_SPACE_RES(mp, resblks); quota_flag = XFS_QMOPT_RES_REGBLKS; } Loading Loading
fs/xfs/linux-2.6/xfs_buf.c +1 −7 Original line number Diff line number Diff line Loading @@ -440,12 +440,7 @@ _xfs_buf_find( ASSERT(btp == bp->b_target); if (bp->b_file_offset == range_base && bp->b_buffer_length == range_length) { /* * If we look at something, bring it to the * front of the list for next time. */ atomic_inc(&bp->b_hold); list_move(&bp->b_hash_list, &hash->bh_list); goto found; } } Loading Loading @@ -1443,8 +1438,7 @@ xfs_alloc_bufhash( { unsigned int i; btp->bt_hashshift = external ? 3 : 8; /* 8 or 256 buckets */ btp->bt_hashmask = (1 << btp->bt_hashshift) - 1; btp->bt_hashshift = external ? 3 : 12; /* 8 or 4096 buckets */ btp->bt_hash = kmem_zalloc_large((1 << btp->bt_hashshift) * sizeof(xfs_bufhash_t)); for (i = 0; i < (1 << btp->bt_hashshift); i++) { Loading
fs/xfs/linux-2.6/xfs_buf.h +0 −1 Original line number Diff line number Diff line Loading @@ -137,7 +137,6 @@ typedef struct xfs_buftarg { size_t bt_smask; /* per device buffer hash table */ uint bt_hashmask; uint bt_hashshift; xfs_bufhash_t *bt_hash; Loading
fs/xfs/xfs_vnodeops.c +10 −3 Original line number Diff line number Diff line Loading @@ -2299,15 +2299,22 @@ xfs_alloc_file_space( e = allocatesize_fsb; } /* * The transaction reservation is limited to a 32-bit block * count, hence we need to limit the number of blocks we are * trying to reserve to avoid an overflow. We can't allocate * more than @nimaps extents, and an extent is limited on disk * to MAXEXTLEN (21 bits), so use that to enforce the limit. */ resblks = min_t(xfs_fileoff_t, (e - s), (MAXEXTLEN * nimaps)); if (unlikely(rt)) { resrtextents = qblocks = (uint)(e - s); resrtextents = qblocks = resblks; resrtextents /= mp->m_sb.sb_rextsize; resblks = XFS_DIOSTRAT_SPACE_RES(mp, 0); quota_flag = XFS_QMOPT_RES_RTBLKS; } else { resrtextents = 0; resblks = qblocks = \ XFS_DIOSTRAT_SPACE_RES(mp, (uint)(e - s)); resblks = qblocks = XFS_DIOSTRAT_SPACE_RES(mp, resblks); quota_flag = XFS_QMOPT_RES_REGBLKS; } Loading