localalloc.c (a45ff5994c9cde41af627c46abb9f32beae68943) localalloc.c (d8b2fa657deaa73ff70d40aea9a54997fc0c7fc9)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/* -*- mode: c; c-basic-offset: 8; -*-
3 * vim: noexpandtab sw=8 ts=8 sts=0:
4 *
5 * localalloc.c
6 *
7 * Node local data allocation
8 *

--- 410 unchanged lines hidden (view full) ---

419 mlog_errno(PTR_ERR(handle));
420 handle = NULL;
421 goto out_unlock;
422 }
423
424 bh = osb->local_alloc_bh;
425 alloc = (struct ocfs2_dinode *) bh->b_data;
426
1// SPDX-License-Identifier: GPL-2.0-or-later
2/* -*- mode: c; c-basic-offset: 8; -*-
3 * vim: noexpandtab sw=8 ts=8 sts=0:
4 *
5 * localalloc.c
6 *
7 * Node local data allocation
8 *

--- 410 unchanged lines hidden (view full) ---

419 mlog_errno(PTR_ERR(handle));
420 handle = NULL;
421 goto out_unlock;
422 }
423
424 bh = osb->local_alloc_bh;
425 alloc = (struct ocfs2_dinode *) bh->b_data;
426
427 alloc_copy = kmalloc(bh->b_size, GFP_NOFS);
427 alloc_copy = kmemdup(alloc, bh->b_size, GFP_NOFS);
428 if (!alloc_copy) {
429 status = -ENOMEM;
430 goto out_commit;
431 }
428 if (!alloc_copy) {
429 status = -ENOMEM;
430 goto out_commit;
431 }
432 memcpy(alloc_copy, alloc, bh->b_size);
433
434 status = ocfs2_journal_access_di(handle, INODE_CACHE(local_alloc_inode),
435 bh, OCFS2_JOURNAL_ACCESS_WRITE);
436 if (status < 0) {
437 mlog_errno(status);
438 goto out_commit;
439 }
440

--- 826 unchanged lines hidden (view full) ---

1267
1268 alloc = (struct ocfs2_dinode *) osb->local_alloc_bh->b_data;
1269
1270 /* We want to clear the local alloc before doing anything
1271 * else, so that if we error later during this operation,
1272 * local alloc shutdown won't try to double free main bitmap
1273 * bits. Make a copy so the sync function knows which bits to
1274 * free. */
432
433 status = ocfs2_journal_access_di(handle, INODE_CACHE(local_alloc_inode),
434 bh, OCFS2_JOURNAL_ACCESS_WRITE);
435 if (status < 0) {
436 mlog_errno(status);
437 goto out_commit;
438 }
439

--- 826 unchanged lines hidden (view full) ---

1266
1267 alloc = (struct ocfs2_dinode *) osb->local_alloc_bh->b_data;
1268
1269 /* We want to clear the local alloc before doing anything
1270 * else, so that if we error later during this operation,
1271 * local alloc shutdown won't try to double free main bitmap
1272 * bits. Make a copy so the sync function knows which bits to
1273 * free. */
1275 alloc_copy = kmalloc(osb->local_alloc_bh->b_size, GFP_NOFS);
1274 alloc_copy = kmemdup(alloc, osb->local_alloc_bh->b_size, GFP_NOFS);
1276 if (!alloc_copy) {
1277 status = -ENOMEM;
1278 mlog_errno(status);
1279 goto bail;
1280 }
1275 if (!alloc_copy) {
1276 status = -ENOMEM;
1277 mlog_errno(status);
1278 goto bail;
1279 }
1281 memcpy(alloc_copy, alloc, osb->local_alloc_bh->b_size);
1282
1283 status = ocfs2_journal_access_di(handle,
1284 INODE_CACHE(local_alloc_inode),
1285 osb->local_alloc_bh,
1286 OCFS2_JOURNAL_ACCESS_WRITE);
1287 if (status < 0) {
1288 mlog_errno(status);
1289 goto bail;

--- 38 unchanged lines hidden ---
1280
1281 status = ocfs2_journal_access_di(handle,
1282 INODE_CACHE(local_alloc_inode),
1283 osb->local_alloc_bh,
1284 OCFS2_JOURNAL_ACCESS_WRITE);
1285 if (status < 0) {
1286 mlog_errno(status);
1287 goto bail;

--- 38 unchanged lines hidden ---