Hi Yang, Thank you for the patch! Yet something to improve:
[auto build test ERROR on shaggy/jfs-next] [also build test ERROR on v5.11-rc6 next-20210125] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Yang-Li/jfs-turn-diLog-dataLog-and-txLog-into-void-functions/20210207-164143 base: https://github.com/kleikamp/linux-shaggy jfs-next config: x86_64-randconfig-a011-20210207 (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 x86_64 cross compiling tool for clang build # apt-get install binutils-x86-64-linux-gnu # https://github.com/0day-ci/linux/commit/1d4e3ad79325df64962835ecc11999b520ffbc80 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Yang-Li/jfs-turn-diLog-dataLog-and-txLog-into-void-functions/20210207-164143 git checkout 1d4e3ad79325df64962835ecc11999b520ffbc80 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> All errors (new ones prefixed by >>): >> fs/jfs/jfs_txnmgr.c:1259:10: error: assigning to 'int' from incompatible >> type 'void' if ((rc = txLog(log, tblk, &cd))) ^ ~~~~~~~~~~~~~~~~~~~~~ 1 error generated. vim +1259 fs/jfs/jfs_txnmgr.c ^1da177e4c3f41 Linus Torvalds 2005-04-16 1084 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1085 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1086 * transaction commit management ^1da177e4c3f41 Linus Torvalds 2005-04-16 1087 * ----------------------------- ^1da177e4c3f41 Linus Torvalds 2005-04-16 1088 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1089 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1090 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1091 * NAME: txCommit() ^1da177e4c3f41 Linus Torvalds 2005-04-16 1092 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1093 * FUNCTION: commit the changes to the objects specified in ^1da177e4c3f41 Linus Torvalds 2005-04-16 1094 * clist. For journalled segments only the ^1da177e4c3f41 Linus Torvalds 2005-04-16 1095 * changes of the caller are committed, ie by tid. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1096 * for non-journalled segments the data are flushed to ^1da177e4c3f41 Linus Torvalds 2005-04-16 1097 * disk and then the change to the disk inode and indirect ^1da177e4c3f41 Linus Torvalds 2005-04-16 1098 * blocks committed (so blocks newly allocated to the ^1da177e4c3f41 Linus Torvalds 2005-04-16 1099 * segment will be made a part of the segment atomically). ^1da177e4c3f41 Linus Torvalds 2005-04-16 1100 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1101 * all of the segments specified in clist must be in ^1da177e4c3f41 Linus Torvalds 2005-04-16 1102 * one file system. no more than 6 segments are needed ^1da177e4c3f41 Linus Torvalds 2005-04-16 1103 * to handle all unix svcs. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1104 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1105 * if the i_nlink field (i.e. disk inode link count) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1106 * is zero, and the type of inode is a regular file or ^1da177e4c3f41 Linus Torvalds 2005-04-16 1107 * directory, or symbolic link , the inode is truncated ^1da177e4c3f41 Linus Torvalds 2005-04-16 1108 * to zero length. the truncation is committed but the ^1da177e4c3f41 Linus Torvalds 2005-04-16 1109 * VM resources are unaffected until it is closed (see ^1da177e4c3f41 Linus Torvalds 2005-04-16 1110 * iput and iclose). ^1da177e4c3f41 Linus Torvalds 2005-04-16 1111 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1112 * PARAMETER: ^1da177e4c3f41 Linus Torvalds 2005-04-16 1113 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1114 * RETURN: ^1da177e4c3f41 Linus Torvalds 2005-04-16 1115 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1116 * serialization: ^1da177e4c3f41 Linus Torvalds 2005-04-16 1117 * on entry the inode lock on each segment is assumed ^1da177e4c3f41 Linus Torvalds 2005-04-16 1118 * to be held. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1119 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1120 * i/o error: ^1da177e4c3f41 Linus Torvalds 2005-04-16 1121 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1122 int txCommit(tid_t tid, /* transaction identifier */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1123 int nip, /* number of inodes to commit */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1124 struct inode **iplist, /* list of inode to commit */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1125 int flag) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1126 { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1127 int rc = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1128 struct commit cd; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1129 struct jfs_log *log; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1130 struct tblock *tblk; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1131 struct lrd *lrd; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1132 struct inode *ip; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1133 struct jfs_inode_info *jfs_ip; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1134 int k, n; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1135 ino_t top; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1136 struct super_block *sb; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1137 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1138 jfs_info("txCommit, tid = %d, flag = %d", tid, flag); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1139 /* is read-only file system ? */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1140 if (isReadOnly(iplist[0])) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1141 rc = -EROFS; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1142 goto TheEnd; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1143 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1144 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1145 sb = cd.sb = iplist[0]->i_sb; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1146 cd.tid = tid; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1147 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1148 if (tid == 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1149 tid = txBegin(sb, 0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1150 tblk = tid_to_tblock(tid); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1151 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1152 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1153 * initialize commit structure ^1da177e4c3f41 Linus Torvalds 2005-04-16 1154 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1155 log = JFS_SBI(sb)->log; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1156 cd.log = log; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1157 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1158 /* initialize log record descriptor in commit */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1159 lrd = &cd.lrd; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1160 lrd->logtid = cpu_to_le32(tblk->logtid); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1161 lrd->backchain = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1162 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1163 tblk->xflag |= flag; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1164 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1165 if ((flag & (COMMIT_FORCE | COMMIT_SYNC)) == 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1166 tblk->xflag |= COMMIT_LAZY; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1167 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1168 * prepare non-journaled objects for commit ^1da177e4c3f41 Linus Torvalds 2005-04-16 1169 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1170 * flush data pages of non-journaled file ^1da177e4c3f41 Linus Torvalds 2005-04-16 1171 * to prevent the file getting non-initialized disk blocks ^1da177e4c3f41 Linus Torvalds 2005-04-16 1172 * in case of crash. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1173 * (new blocks - ) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1174 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1175 cd.iplist = iplist; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1176 cd.nip = nip; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1177 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1178 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1179 * acquire transaction lock on (on-disk) inodes ^1da177e4c3f41 Linus Torvalds 2005-04-16 1180 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1181 * update on-disk inode from in-memory inode ^1da177e4c3f41 Linus Torvalds 2005-04-16 1182 * acquiring transaction locks for AFTER records ^1da177e4c3f41 Linus Torvalds 2005-04-16 1183 * on the on-disk inode of file object ^1da177e4c3f41 Linus Torvalds 2005-04-16 1184 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1185 * sort the inodes array by inode number in descending order ^1da177e4c3f41 Linus Torvalds 2005-04-16 1186 * to prevent deadlock when acquiring transaction lock ^1da177e4c3f41 Linus Torvalds 2005-04-16 1187 * of on-disk inodes on multiple on-disk inode pages by ^1da177e4c3f41 Linus Torvalds 2005-04-16 1188 * multiple concurrent transactions ^1da177e4c3f41 Linus Torvalds 2005-04-16 1189 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1190 for (k = 0; k < cd.nip; k++) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1191 top = (cd.iplist[k])->i_ino; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1192 for (n = k + 1; n < cd.nip; n++) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1193 ip = cd.iplist[n]; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1194 if (ip->i_ino > top) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1195 top = ip->i_ino; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1196 cd.iplist[n] = cd.iplist[k]; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1197 cd.iplist[k] = ip; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1198 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1199 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1200 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1201 ip = cd.iplist[k]; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1202 jfs_ip = JFS_IP(ip); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1203 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1204 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1205 * BUGBUG - This code has temporarily been removed. The ^1da177e4c3f41 Linus Torvalds 2005-04-16 1206 * intent is to ensure that any file data is written before ^1da177e4c3f41 Linus Torvalds 2005-04-16 1207 * the metadata is committed to the journal. This prevents ^1da177e4c3f41 Linus Torvalds 2005-04-16 1208 * uninitialized data from appearing in a file after the ^1da177e4c3f41 Linus Torvalds 2005-04-16 1209 * journal has been replayed. (The uninitialized data ^1da177e4c3f41 Linus Torvalds 2005-04-16 1210 * could be sensitive data removed by another user.) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1211 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1212 * The problem now is that we are holding the IWRITELOCK ^1da177e4c3f41 Linus Torvalds 2005-04-16 1213 * on the inode, and calling filemap_fdatawrite on an ^1da177e4c3f41 Linus Torvalds 2005-04-16 1214 * unmapped page will cause a deadlock in jfs_get_block. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1215 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1216 * The long term solution is to pare down the use of ^1da177e4c3f41 Linus Torvalds 2005-04-16 1217 * IWRITELOCK. We are currently holding it too long. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1218 * We could also be smarter about which data pages need ^1da177e4c3f41 Linus Torvalds 2005-04-16 1219 * to be written before the transaction is committed and ^1da177e4c3f41 Linus Torvalds 2005-04-16 1220 * when we don't need to worry about it at all. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1221 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1222 * if ((!S_ISDIR(ip->i_mode)) 28fd129827b00e OGAWA Hirofumi 2006-01-08 1223 * && (tblk->flag & COMMIT_DELETE) == 0) 28fd129827b00e OGAWA Hirofumi 2006-01-08 1224 * filemap_write_and_wait(ip->i_mapping); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1225 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1226 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1227 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1228 * Mark inode as not dirty. It will still be on the dirty ^1da177e4c3f41 Linus Torvalds 2005-04-16 1229 * inode list, but we'll know not to commit it again unless ^1da177e4c3f41 Linus Torvalds 2005-04-16 1230 * it gets marked dirty again ^1da177e4c3f41 Linus Torvalds 2005-04-16 1231 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1232 clear_cflag(COMMIT_Dirty, ip); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1233 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1234 /* inherit anonymous tlock(s) of inode */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1235 if (jfs_ip->atlhead) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1236 lid_to_tlock(jfs_ip->atltail)->next = tblk->next; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1237 tblk->next = jfs_ip->atlhead; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1238 if (!tblk->last) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1239 tblk->last = jfs_ip->atltail; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1240 jfs_ip->atlhead = jfs_ip->atltail = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1241 TXN_LOCK(); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1242 list_del_init(&jfs_ip->anon_inode_list); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1243 TXN_UNLOCK(); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1244 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1245 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1246 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1247 * acquire transaction lock on on-disk inode page ^1da177e4c3f41 Linus Torvalds 2005-04-16 1248 * (become first tlock of the tblk's tlock list) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1249 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1250 if (((rc = diWrite(tid, ip)))) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1251 goto out; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1252 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1253 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1254 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1255 * write log records from transaction locks ^1da177e4c3f41 Linus Torvalds 2005-04-16 1256 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1257 * txUpdateMap() resets XAD_NEW in XAD. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1258 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 @1259 if ((rc = txLog(log, tblk, &cd))) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1260 goto TheEnd; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1261 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1262 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1263 * Ensure that inode isn't reused before ^1da177e4c3f41 Linus Torvalds 2005-04-16 1264 * lazy commit thread finishes processing ^1da177e4c3f41 Linus Torvalds 2005-04-16 1265 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1266 if (tblk->xflag & COMMIT_DELETE) { 7de9c6ee3ecffd Al Viro 2010-10-23 1267 ihold(tblk->u.ip); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1268 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1269 * Avoid a rare deadlock ^1da177e4c3f41 Linus Torvalds 2005-04-16 1270 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1271 * If the inode is locked, we may be blocked in ^1da177e4c3f41 Linus Torvalds 2005-04-16 1272 * jfs_commit_inode. If so, we don't want the ^1da177e4c3f41 Linus Torvalds 2005-04-16 1273 * lazy_commit thread doing the last iput() on the inode ^1da177e4c3f41 Linus Torvalds 2005-04-16 1274 * since that may block on the locked inode. Instead, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1275 * commit the transaction synchronously, so the last iput ^1da177e4c3f41 Linus Torvalds 2005-04-16 1276 * will be done by the calling thread (or later) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1277 */ 1c0eeaf5698597 Joern Engel 2007-10-16 1278 /* 1c0eeaf5698597 Joern Engel 2007-10-16 1279 * I believe this code is no longer needed. Splitting I_LOCK eaff8079d4f101 Christoph Hellwig 2009-12-17 1280 * into two bits, I_NEW and I_SYNC should prevent this 1c0eeaf5698597 Joern Engel 2007-10-16 1281 * deadlock as well. But since I don't have a JFS testload 1c0eeaf5698597 Joern Engel 2007-10-16 1282 * to verify this, only a trivial s/I_LOCK/I_SYNC/ was done. 1c0eeaf5698597 Joern Engel 2007-10-16 1283 * Joern 1c0eeaf5698597 Joern Engel 2007-10-16 1284 */ 1c0eeaf5698597 Joern Engel 2007-10-16 1285 if (tblk->u.ip->i_state & I_SYNC) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1286 tblk->xflag &= ~COMMIT_LAZY; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1287 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1288 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1289 ASSERT((!(tblk->xflag & COMMIT_DELETE)) || ^1da177e4c3f41 Linus Torvalds 2005-04-16 1290 ((tblk->u.ip->i_nlink == 0) && ^1da177e4c3f41 Linus Torvalds 2005-04-16 1291 !test_cflag(COMMIT_Nolink, tblk->u.ip))); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1292 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1293 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1294 * write COMMIT log record ^1da177e4c3f41 Linus Torvalds 2005-04-16 1295 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1296 lrd->type = cpu_to_le16(LOG_COMMIT); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1297 lrd->length = 0; 3c2c2262859900 Dave Kleikamp 2011-06-20 1298 lmLog(log, tblk, lrd, NULL); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1299 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1300 lmGroupCommit(log, tblk); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1301 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1302 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1303 * - transaction is now committed - ^1da177e4c3f41 Linus Torvalds 2005-04-16 1304 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1305 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1306 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1307 * force pages in careful update ^1da177e4c3f41 Linus Torvalds 2005-04-16 1308 * (imap addressing structure update) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1309 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1310 if (flag & COMMIT_FORCE) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1311 txForce(tblk); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1312 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1313 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1314 * update allocation map. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1315 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1316 * update inode allocation map and inode: ^1da177e4c3f41 Linus Torvalds 2005-04-16 1317 * free pager lock on memory object of inode if any. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1318 * update block allocation map. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1319 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 1320 * txUpdateMap() resets XAD_NEW in XAD. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1321 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1322 if (tblk->xflag & COMMIT_FORCE) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1323 txUpdateMap(tblk); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1324 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1325 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1326 * free transaction locks and pageout/free pages ^1da177e4c3f41 Linus Torvalds 2005-04-16 1327 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1328 txRelease(tblk); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1329 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1330 if ((tblk->flag & tblkGC_LAZY) == 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1331 txUnlock(tblk); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1332 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1333 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1334 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1335 * reset in-memory object state ^1da177e4c3f41 Linus Torvalds 2005-04-16 1336 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1337 for (k = 0; k < cd.nip; k++) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1338 ip = cd.iplist[k]; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1339 jfs_ip = JFS_IP(ip); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1340 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1341 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1342 * reset in-memory inode state ^1da177e4c3f41 Linus Torvalds 2005-04-16 1343 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1344 jfs_ip->bxflag = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1345 jfs_ip->blid = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1346 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1347 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1348 out: ^1da177e4c3f41 Linus Torvalds 2005-04-16 1349 if (rc != 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1350 txAbort(tid, 1); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1351 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1352 TheEnd: ^1da177e4c3f41 Linus Torvalds 2005-04-16 1353 jfs_info("txCommit: tid = %d, returning %d", tid, rc); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1354 return rc; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1355 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1356 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip