Commit b522950f0ab8551f2ef56c210ebd50e6c6396601

Authored by Chandra Seetharaman
Committed by Alex Elder
1 parent 04f658ee22

xfs: Check the return value of xfs_buf_get()

Check the return value of xfs_buf_get() and fail appropriately.

Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com>
Signed-off-by: Alex Elder <aelder@sgi.com>

Showing 2 changed files with 22 additions and 2 deletions Side-by-side Diff

... ... @@ -2109,8 +2109,8 @@
2109 2109  
2110 2110 bp = xfs_buf_get(mp->m_ddev_targp, dblkno, blkcnt,
2111 2111 XBF_LOCK | XBF_DONT_BLOCK);
2112   - ASSERT(!xfs_buf_geterror(bp));
2113   -
  2112 + if (!bp)
  2113 + return ENOMEM;
2114 2114 tmp = (valuelen < XFS_BUF_SIZE(bp)) ? valuelen :
2115 2115 XFS_BUF_SIZE(bp);
2116 2116 xfs_buf_iomove(bp, 0, tmp, src, XBRW_WRITE);
... ... @@ -194,6 +194,10 @@
194 194 bp = xfs_buf_get(mp->m_ddev_targp,
195 195 XFS_AG_DADDR(mp, agno, XFS_AGF_DADDR(mp)),
196 196 XFS_FSS_TO_BB(mp, 1), XBF_LOCK | XBF_MAPPED);
  197 + if (!bp) {
  198 + error = ENOMEM;
  199 + goto error0;
  200 + }
197 201 agf = XFS_BUF_TO_AGF(bp);
198 202 memset(agf, 0, mp->m_sb.sb_sectsize);
199 203 agf->agf_magicnum = cpu_to_be32(XFS_AGF_MAGIC);
... ... @@ -227,6 +231,10 @@
227 231 bp = xfs_buf_get(mp->m_ddev_targp,
228 232 XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)),
229 233 XFS_FSS_TO_BB(mp, 1), XBF_LOCK | XBF_MAPPED);
  234 + if (!bp) {
  235 + error = ENOMEM;
  236 + goto error0;
  237 + }
230 238 agi = XFS_BUF_TO_AGI(bp);
231 239 memset(agi, 0, mp->m_sb.sb_sectsize);
232 240 agi->agi_magicnum = cpu_to_be32(XFS_AGI_MAGIC);
... ... @@ -253,6 +261,10 @@
253 261 XFS_AGB_TO_DADDR(mp, agno, XFS_BNO_BLOCK(mp)),
254 262 BTOBB(mp->m_sb.sb_blocksize),
255 263 XBF_LOCK | XBF_MAPPED);
  264 + if (!bp) {
  265 + error = ENOMEM;
  266 + goto error0;
  267 + }
256 268 block = XFS_BUF_TO_BLOCK(bp);
257 269 memset(block, 0, mp->m_sb.sb_blocksize);
258 270 block->bb_magic = cpu_to_be32(XFS_ABTB_MAGIC);
... ... @@ -276,6 +288,10 @@
276 288 XFS_AGB_TO_DADDR(mp, agno, XFS_CNT_BLOCK(mp)),
277 289 BTOBB(mp->m_sb.sb_blocksize),
278 290 XBF_LOCK | XBF_MAPPED);
  291 + if (!bp) {
  292 + error = ENOMEM;
  293 + goto error0;
  294 + }
279 295 block = XFS_BUF_TO_BLOCK(bp);
280 296 memset(block, 0, mp->m_sb.sb_blocksize);
281 297 block->bb_magic = cpu_to_be32(XFS_ABTC_MAGIC);
... ... @@ -300,6 +316,10 @@
300 316 XFS_AGB_TO_DADDR(mp, agno, XFS_IBT_BLOCK(mp)),
301 317 BTOBB(mp->m_sb.sb_blocksize),
302 318 XBF_LOCK | XBF_MAPPED);
  319 + if (!bp) {
  320 + error = ENOMEM;
  321 + goto error0;
  322 + }
303 323 block = XFS_BUF_TO_BLOCK(bp);
304 324 memset(block, 0, mp->m_sb.sb_blocksize);
305 325 block->bb_magic = cpu_to_be32(XFS_IBT_MAGIC);