tree:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
linux-4.19.y
head: a4346d5d945c303262908275419f3e36d888fea7
commit: bda64b43564ac3eca39202db4f1462487ca4a6bf [1850/3205] xfs: fix realtime
bitmap/summary file truncation when growing rt volume
config: powerpc64-randconfig-r031-20210215 (attached as .config)
compiler: clang version 12.0.0 (
https://github.com/llvm/llvm-project
c9439ca36342fb6013187d0a69aef92736951476)
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc64 cross compiling tool for clang build
# apt-get install binutils-powerpc64-linux-gnu
#
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gi...
git remote add linux-stable-rc
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git fetch --no-tags linux-stable-rc linux-4.19.y
git checkout bda64b43564ac3eca39202db4f1462487ca4a6bf
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
> fs/xfs/xfs_rtalloc.c:875:1: warning: stack frame size of 1104
bytes in function 'xfs_growfs_rt' [-Wframe-larger-than=]
xfs_growfs_rt(
^
1 warning generated.
vim +/xfs_growfs_rt +875 fs/xfs/xfs_rtalloc.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 866
^1da177e4c3f41 Linus Torvalds 2005-04-16 867 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 868 * Visible (exported) functions.
^1da177e4c3f41 Linus Torvalds 2005-04-16 869 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 870
^1da177e4c3f41 Linus Torvalds 2005-04-16 871 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 872 * Grow the realtime area of the
filesystem.
^1da177e4c3f41 Linus Torvalds 2005-04-16 873 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 874 int
^1da177e4c3f41 Linus Torvalds 2005-04-16 @875 xfs_growfs_rt(
^1da177e4c3f41 Linus Torvalds 2005-04-16 876 xfs_mount_t *mp, /* mount point for
filesystem */
^1da177e4c3f41 Linus Torvalds 2005-04-16 877 xfs_growfs_rt_t *in) /* growfs rt
input struct */
^1da177e4c3f41 Linus Torvalds 2005-04-16 878 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 879 xfs_rtblock_t bmbno; /* bitmap
block number */
^1da177e4c3f41 Linus Torvalds 2005-04-16 880 xfs_buf_t *bp; /* temporary buffer
*/
^1da177e4c3f41 Linus Torvalds 2005-04-16 881 int error; /* error return value
*/
^1da177e4c3f41 Linus Torvalds 2005-04-16 882 xfs_mount_t *nmp; /* new (fake)
mount structure */
d5cf09baced0ef Christoph Hellwig 2014-07-30 883 xfs_rfsblock_t nrblocks; /* new
number of realtime blocks */
^1da177e4c3f41 Linus Torvalds 2005-04-16 884 xfs_extlen_t nrbmblocks; /* new
number of rt bitmap blocks */
d5cf09baced0ef Christoph Hellwig 2014-07-30 885 xfs_rtblock_t nrextents; /* new
number of realtime extents */
^1da177e4c3f41 Linus Torvalds 2005-04-16 886 uint8_t nrextslog; /* new log2 of
sb_rextents */
^1da177e4c3f41 Linus Torvalds 2005-04-16 887 xfs_extlen_t nrsumblocks; /* new
number of summary blocks */
^1da177e4c3f41 Linus Torvalds 2005-04-16 888 uint nrsumlevels; /* new rt summary
levels */
^1da177e4c3f41 Linus Torvalds 2005-04-16 889 uint nrsumsize; /* new size of rt
summary, bytes */
^1da177e4c3f41 Linus Torvalds 2005-04-16 890 xfs_sb_t *nsbp; /* new superblock
*/
^1da177e4c3f41 Linus Torvalds 2005-04-16 891 xfs_extlen_t rbmblocks; /* current
number of rt bitmap blocks */
^1da177e4c3f41 Linus Torvalds 2005-04-16 892 xfs_extlen_t rsumblocks; /* current
number of rt summary blks */
^1da177e4c3f41 Linus Torvalds 2005-04-16 893 xfs_sb_t *sbp; /* old superblock
*/
^1da177e4c3f41 Linus Torvalds 2005-04-16 894 xfs_fsblock_t sumbno; /* summary
block number */
^1da177e4c3f41 Linus Torvalds 2005-04-16 895
^1da177e4c3f41 Linus Torvalds 2005-04-16 896 sbp = &mp->m_sb;
^1da177e4c3f41 Linus Torvalds 2005-04-16 897 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 898 * Initial error checking.
^1da177e4c3f41 Linus Torvalds 2005-04-16 899 */
743bb4650da9e2 sandeen(a)sandeen.net 2008-11-25 900 if (!capable(CAP_SYS_ADMIN))
2451337dd04390 Dave Chinner 2014-06-25 901 return -EPERM;
73024cf11522c0 Eric Sesterhenn 2006-06-28 902 if (mp->m_rtdev_targp == NULL ||
mp->m_rbmip == NULL ||
^1da177e4c3f41 Linus Torvalds 2005-04-16 903 (nrblocks = in->newblocks)
<= sbp->sb_rblocks ||
^1da177e4c3f41 Linus Torvalds 2005-04-16 904 (sbp->sb_rblocks &&
(in->extsize != sbp->sb_rextsize)))
2451337dd04390 Dave Chinner 2014-06-25 905 return -EINVAL;
4cc929ee305c69 Nathan Scott 2007-05-14 906 if ((error =
xfs_sb_validate_fsb_count(sbp, nrblocks)))
4cc929ee305c69 Nathan Scott 2007-05-14 907 return error;
^1da177e4c3f41 Linus Torvalds 2005-04-16 908 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 909 * Read in the last block of the
device, make sure it exists.
^1da177e4c3f41 Linus Torvalds 2005-04-16 910 */
ba3726742c1712 Dave Chinner 2014-10-02 911 error =
xfs_buf_read_uncached(mp->m_rtdev_targp,
4cc929ee305c69 Nathan Scott 2007-05-14 912 XFS_FSB_TO_BB(mp, nrblocks - 1),
ba3726742c1712 Dave Chinner 2014-10-02 913 XFS_FSB_TO_BB(mp, 1), 0, &bp,
NULL);
ba3726742c1712 Dave Chinner 2014-10-02 914 if (error)
eab4e63368b4cf Dave Chinner 2012-11-12 915 return error;
^1da177e4c3f41 Linus Torvalds 2005-04-16 916 xfs_buf_relse(bp);
1922c949c59f93 Dave Chinner 2010-09-22 917
^1da177e4c3f41 Linus Torvalds 2005-04-16 918 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 919 * Calculate new parameters. These
are the final values to be reached.
^1da177e4c3f41 Linus Torvalds 2005-04-16 920 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 921 nrextents = nrblocks;
^1da177e4c3f41 Linus Torvalds 2005-04-16 922 do_div(nrextents, in->extsize);
68c3271515f11f Nathan Scott 2006-09-28 923 nrbmblocks = howmany_64(nrextents,
NBBY * sbp->sb_blocksize);
^1da177e4c3f41 Linus Torvalds 2005-04-16 924 nrextslog =
xfs_highbit32(nrextents);
^1da177e4c3f41 Linus Torvalds 2005-04-16 925 nrsumlevels = nrextslog + 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 926 nrsumsize =
(uint)sizeof(xfs_suminfo_t) * nrsumlevels * nrbmblocks;
^1da177e4c3f41 Linus Torvalds 2005-04-16 927 nrsumblocks = XFS_B_TO_FSB(mp,
nrsumsize);
^1da177e4c3f41 Linus Torvalds 2005-04-16 928 nrsumsize = XFS_FSB_TO_B(mp,
nrsumblocks);
^1da177e4c3f41 Linus Torvalds 2005-04-16 929 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 930 * New summary size can't be
more than half the size of
^1da177e4c3f41 Linus Torvalds 2005-04-16 931 * the log. This prevents us from
getting a log overflow,
^1da177e4c3f41 Linus Torvalds 2005-04-16 932 * since we'll log basically the
whole summary file at once.
^1da177e4c3f41 Linus Torvalds 2005-04-16 933 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 934 if (nrsumblocks >
(mp->m_sb.sb_logblocks >> 1))
2451337dd04390 Dave Chinner 2014-06-25 935 return -EINVAL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 936 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 937 * Get the old block counts for
bitmap and summary inodes.
^1da177e4c3f41 Linus Torvalds 2005-04-16 938 * These can't change since
other growfs callers are locked out.
^1da177e4c3f41 Linus Torvalds 2005-04-16 939 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 940 rbmblocks = XFS_B_TO_FSB(mp,
mp->m_rbmip->i_d.di_size);
^1da177e4c3f41 Linus Torvalds 2005-04-16 941 rsumblocks = XFS_B_TO_FSB(mp,
mp->m_rsumip->i_d.di_size);
^1da177e4c3f41 Linus Torvalds 2005-04-16 942 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 943 * Allocate space to the bitmap and
summary files, as necessary.
^1da177e4c3f41 Linus Torvalds 2005-04-16 944 */
1050c71e2925ab Christoph Hellwig 2011-02-13 945 error = xfs_growfs_rt_alloc(mp,
rbmblocks, nrbmblocks, mp->m_rbmip);
1050c71e2925ab Christoph Hellwig 2011-02-13 946 if (error)
^1da177e4c3f41 Linus Torvalds 2005-04-16 947 return error;
1050c71e2925ab Christoph Hellwig 2011-02-13 948 error = xfs_growfs_rt_alloc(mp,
rsumblocks, nrsumblocks, mp->m_rsumip);
1050c71e2925ab Christoph Hellwig 2011-02-13 949 if (error)
^1da177e4c3f41 Linus Torvalds 2005-04-16 950 return error;
d432c80e68e3c2 Nathan Scott 2006-09-28 951 /*
d432c80e68e3c2 Nathan Scott 2006-09-28 952 * Allocate a new (fake) mount/sb.
d432c80e68e3c2 Nathan Scott 2006-09-28 953 */
d432c80e68e3c2 Nathan Scott 2006-09-28 954 nmp = kmem_alloc(sizeof(*nmp),
KM_SLEEP);
^1da177e4c3f41 Linus Torvalds 2005-04-16 955 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 956 * Loop over the bitmap blocks.
^1da177e4c3f41 Linus Torvalds 2005-04-16 957 * We will do everything one bitmap
block at a time.
^1da177e4c3f41 Linus Torvalds 2005-04-16 958 * Skip the current block if it is
exactly full.
^1da177e4c3f41 Linus Torvalds 2005-04-16 959 * This also deals with the case
where there were no rtextents before.
^1da177e4c3f41 Linus Torvalds 2005-04-16 960 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 961 for (bmbno = sbp->sb_rbmblocks -
^1da177e4c3f41 Linus Torvalds 2005-04-16 962 ((sbp->sb_rextents &
((1 << mp->m_blkbit_log) - 1)) != 0);
^1da177e4c3f41 Linus Torvalds 2005-04-16 963 bmbno < nrbmblocks;
^1da177e4c3f41 Linus Torvalds 2005-04-16 964 bmbno++) {
0924b585fc49bf Dave Chinner 2008-11-28 965 xfs_trans_t *tp;
0924b585fc49bf Dave Chinner 2008-11-28 966
^1da177e4c3f41 Linus Torvalds 2005-04-16 967 *nmp = *mp;
^1da177e4c3f41 Linus Torvalds 2005-04-16 968 nsbp = &nmp->m_sb;
^1da177e4c3f41 Linus Torvalds 2005-04-16 969 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 970 * Calculate new sb and mount
fields for this round.
^1da177e4c3f41 Linus Torvalds 2005-04-16 971 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 972 nsbp->sb_rextsize =
in->extsize;
^1da177e4c3f41 Linus Torvalds 2005-04-16 973 nsbp->sb_rbmblocks = bmbno + 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 974 nsbp->sb_rblocks =
^1da177e4c3f41 Linus Torvalds 2005-04-16 975 XFS_RTMIN(nrblocks,
^1da177e4c3f41 Linus Torvalds 2005-04-16 976 nsbp->sb_rbmblocks * NBBY *
^1da177e4c3f41 Linus Torvalds 2005-04-16 977 nsbp->sb_blocksize *
nsbp->sb_rextsize);
^1da177e4c3f41 Linus Torvalds 2005-04-16 978 nsbp->sb_rextents =
nsbp->sb_rblocks;
^1da177e4c3f41 Linus Torvalds 2005-04-16 979 do_div(nsbp->sb_rextents,
nsbp->sb_rextsize);
79071eb0b2f142 David Chinner 2008-08-13 980 ASSERT(nsbp->sb_rextents != 0);
^1da177e4c3f41 Linus Torvalds 2005-04-16 981 nsbp->sb_rextslog =
xfs_highbit32(nsbp->sb_rextents);
^1da177e4c3f41 Linus Torvalds 2005-04-16 982 nrsumlevels = nmp->m_rsumlevels
= nsbp->sb_rextslog + 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 983 nrsumsize =
^1da177e4c3f41 Linus Torvalds 2005-04-16 984 (uint)sizeof(xfs_suminfo_t) *
nrsumlevels *
^1da177e4c3f41 Linus Torvalds 2005-04-16 985 nsbp->sb_rbmblocks;
^1da177e4c3f41 Linus Torvalds 2005-04-16 986 nrsumblocks = XFS_B_TO_FSB(mp,
nrsumsize);
^1da177e4c3f41 Linus Torvalds 2005-04-16 987 nmp->m_rsumsize = nrsumsize =
XFS_FSB_TO_B(mp, nrsumblocks);
^1da177e4c3f41 Linus Torvalds 2005-04-16 988 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 989 * Start a transaction, get the log
reservation.
^1da177e4c3f41 Linus Torvalds 2005-04-16 990 */
253f4911f297b8 Christoph Hellwig 2016-04-06 991 error = xfs_trans_alloc(mp,
&M_RES(mp)->tr_growrtfree, 0, 0, 0,
253f4911f297b8 Christoph Hellwig 2016-04-06 992 &tp);
3d3c8b5222b924 Jie Liu 2013-08-12 993 if (error)
253f4911f297b8 Christoph Hellwig 2016-04-06 994 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 995 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 996 * Lock out other callers by
grabbing the bitmap inode lock.
^1da177e4c3f41 Linus Torvalds 2005-04-16 997 */
1050c71e2925ab Christoph Hellwig 2011-02-13 998 xfs_ilock(mp->m_rbmip,
XFS_ILOCK_EXCL);
ddc3415aba1cb2 Christoph Hellwig 2011-09-19 999 xfs_trans_ijoin(tp, mp->m_rbmip,
XFS_ILOCK_EXCL);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1000 /*
bda64b43564ac3 Darrick J. Wong 2020-10-07 1001 * Update the bitmap inode's
size ondisk and incore. We need
bda64b43564ac3 Darrick J. Wong 2020-10-07 1002 * to update the incore size so
that inode inactivation won't
bda64b43564ac3 Darrick J. Wong 2020-10-07 1003 * punch what it thinks are
"posteof" blocks.
^1da177e4c3f41 Linus Torvalds 2005-04-16 1004 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1005 mp->m_rbmip->i_d.di_size =
^1da177e4c3f41 Linus Torvalds 2005-04-16 1006 nsbp->sb_rbmblocks *
nsbp->sb_blocksize;
bda64b43564ac3 Darrick J. Wong 2020-10-07 1007 i_size_write(VFS_I(mp->m_rbmip),
mp->m_rbmip->i_d.di_size);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1008 xfs_trans_log_inode(tp,
mp->m_rbmip, XFS_ILOG_CORE);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1009 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 1010 * Get the summary inode into the
transaction.
^1da177e4c3f41 Linus Torvalds 2005-04-16 1011 */
1050c71e2925ab Christoph Hellwig 2011-02-13 1012 xfs_ilock(mp->m_rsumip,
XFS_ILOCK_EXCL);
ddc3415aba1cb2 Christoph Hellwig 2011-09-19 1013 xfs_trans_ijoin(tp,
mp->m_rsumip, XFS_ILOCK_EXCL);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1014 /*
bda64b43564ac3 Darrick J. Wong 2020-10-07 1015 * Update the summary inode's
size. We need to update the
bda64b43564ac3 Darrick J. Wong 2020-10-07 1016 * incore size so that inode
inactivation won't punch what it
bda64b43564ac3 Darrick J. Wong 2020-10-07 1017 * thinks are "posteof"
blocks.
^1da177e4c3f41 Linus Torvalds 2005-04-16 1018 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1019 mp->m_rsumip->i_d.di_size =
nmp->m_rsumsize;
bda64b43564ac3 Darrick J. Wong 2020-10-07 1020
i_size_write(VFS_I(mp->m_rsumip), mp->m_rsumip->i_d.di_size);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1021 xfs_trans_log_inode(tp,
mp->m_rsumip, XFS_ILOG_CORE);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1022 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 1023 * Copy summary data from old to
new sizes.
^1da177e4c3f41 Linus Torvalds 2005-04-16 1024 * Do this when the real size (not
block-aligned) changes.
^1da177e4c3f41 Linus Torvalds 2005-04-16 1025 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1026 if (sbp->sb_rbmblocks !=
nsbp->sb_rbmblocks ||
^1da177e4c3f41 Linus Torvalds 2005-04-16 1027 mp->m_rsumlevels !=
nmp->m_rsumlevels) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 1028 error = xfs_rtcopy_summary(mp,
nmp, tp);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1029 if (error)
0924b585fc49bf Dave Chinner 2008-11-28 1030 goto error_cancel;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1031 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 1032 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 1033 * Update superblock fields.
^1da177e4c3f41 Linus Torvalds 2005-04-16 1034 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1035 if (nsbp->sb_rextsize !=
sbp->sb_rextsize)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1036 xfs_trans_mod_sb(tp,
XFS_TRANS_SB_REXTSIZE,
^1da177e4c3f41 Linus Torvalds 2005-04-16 1037 nsbp->sb_rextsize -
sbp->sb_rextsize);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1038 if (nsbp->sb_rbmblocks !=
sbp->sb_rbmblocks)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1039 xfs_trans_mod_sb(tp,
XFS_TRANS_SB_RBMBLOCKS,
^1da177e4c3f41 Linus Torvalds 2005-04-16 1040 nsbp->sb_rbmblocks -
sbp->sb_rbmblocks);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1041 if (nsbp->sb_rblocks !=
sbp->sb_rblocks)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1042 xfs_trans_mod_sb(tp,
XFS_TRANS_SB_RBLOCKS,
^1da177e4c3f41 Linus Torvalds 2005-04-16 1043 nsbp->sb_rblocks -
sbp->sb_rblocks);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1044 if (nsbp->sb_rextents !=
sbp->sb_rextents)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1045 xfs_trans_mod_sb(tp,
XFS_TRANS_SB_REXTENTS,
^1da177e4c3f41 Linus Torvalds 2005-04-16 1046 nsbp->sb_rextents -
sbp->sb_rextents);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1047 if (nsbp->sb_rextslog !=
sbp->sb_rextslog)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1048 xfs_trans_mod_sb(tp,
XFS_TRANS_SB_REXTSLOG,
^1da177e4c3f41 Linus Torvalds 2005-04-16 1049 nsbp->sb_rextslog -
sbp->sb_rextslog);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1050 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 1051 * Free new extent.
^1da177e4c3f41 Linus Torvalds 2005-04-16 1052 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1053 bp = NULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1054 error = xfs_rtfree_range(nmp, tp,
sbp->sb_rextents,
^1da177e4c3f41 Linus Torvalds 2005-04-16 1055 nsbp->sb_rextents -
sbp->sb_rextents, &bp, &sumbno);
0924b585fc49bf Dave Chinner 2008-11-28 1056 if (error) {
0924b585fc49bf Dave Chinner 2008-11-28 1057 error_cancel:
4906e21545814e Christoph Hellwig 2015-06-04 1058 xfs_trans_cancel(tp);
d432c80e68e3c2 Nathan Scott 2006-09-28 1059 break;
0924b585fc49bf Dave Chinner 2008-11-28 1060 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 1061 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 1062 * Mark more blocks free in the
superblock.
^1da177e4c3f41 Linus Torvalds 2005-04-16 1063 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1064 xfs_trans_mod_sb(tp,
XFS_TRANS_SB_FREXTENTS,
^1da177e4c3f41 Linus Torvalds 2005-04-16 1065 nsbp->sb_rextents -
sbp->sb_rextents);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1066 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 1067 * Update mp values into the real
mp structure.
^1da177e4c3f41 Linus Torvalds 2005-04-16 1068 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1069 mp->m_rsumlevels = nrsumlevels;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1070 mp->m_rsumsize = nrsumsize;
e5720eec0548c0 David Chinner 2008-04-10 1071
70393313dd0b26 Christoph Hellwig 2015-06-04 1072 error = xfs_trans_commit(tp);
0924b585fc49bf Dave Chinner 2008-11-28 1073 if (error)
e5720eec0548c0 David Chinner 2008-04-10 1074 break;
e5720eec0548c0 David Chinner 2008-04-10 1075 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 1076
^1da177e4c3f41 Linus Torvalds 2005-04-16 1077 /*
d432c80e68e3c2 Nathan Scott 2006-09-28 1078 * Free the fake mp structure.
^1da177e4c3f41 Linus Torvalds 2005-04-16 1079 */
f0e2d93c29dc39 Denys Vlasenko 2008-05-19 1080 kmem_free(nmp);
d432c80e68e3c2 Nathan Scott 2006-09-28 1081
^1da177e4c3f41 Linus Torvalds 2005-04-16 1082 return error;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1083 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 1084
:::::: The code at line 875 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
:::::: TO: Linus Torvalds <torvalds(a)ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds(a)ppc970.osdl.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org