瀏覽代碼

[XFS] Fix a porting botch on the realtime subvol growfs code path.

SGI-PV: 955515
SGI-Modid: xfs-linux-melb:xfs-kern:26806a

Signed-off-by: Nathan Scott <nathans@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>
Nathan Scott 18 年之前
父節點
當前提交
68c3271515
共有 2 個文件被更改,包括 8 次插入1 次删除
  1. 7 0
      fs/xfs/linux-2.6/xfs_linux.h
  2. 1 1
      fs/xfs/xfs_rtalloc.c

+ 7 - 0
fs/xfs/linux-2.6/xfs_linux.h

@@ -332,4 +332,11 @@ static inline __uint64_t roundup_64(__uint64_t x, __uint32_t y)
 	return(x * y);
 	return(x * y);
 }
 }
 
 
+static inline __uint64_t howmany_64(__uint64_t x, __uint32_t y)
+{
+	x += y - 1;
+	do_div(x, y);
+	return x;
+}
+
 #endif /* __XFS_LINUX__ */
 #endif /* __XFS_LINUX__ */

+ 1 - 1
fs/xfs/xfs_rtalloc.c

@@ -1948,7 +1948,7 @@ xfs_growfs_rt(
 	 */
 	 */
 	nrextents = nrblocks;
 	nrextents = nrblocks;
 	do_div(nrextents, in->extsize);
 	do_div(nrextents, in->extsize);
-	nrbmblocks = roundup_64(nrextents, NBBY * sbp->sb_blocksize);
+	nrbmblocks = howmany_64(nrextents, NBBY * sbp->sb_blocksize);
 	nrextslog = xfs_highbit32(nrextents);
 	nrextslog = xfs_highbit32(nrextents);
 	nrsumlevels = nrextslog + 1;
 	nrsumlevels = nrextslog + 1;
 	nrsumsize = (uint)sizeof(xfs_suminfo_t) * nrsumlevels * nrbmblocks;
 	nrsumsize = (uint)sizeof(xfs_suminfo_t) * nrsumlevels * nrbmblocks;