Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 352910
b: refs/heads/master
c: 820a554
h: refs/heads/master
v: v3
  • Loading branch information
Mark Tinguely authored and Ben Myers committed Dec 17, 2012
1 parent 61c804b commit 37707cc
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b94381737e9c4d014a4003e8ece9ba88670a2dd4
refs/heads/master: 820a554f2f83d21f7e9e608377c8c86af70917bd
20 changes: 15 additions & 5 deletions trunk/fs/xfs/xfs_buf_item.c
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,17 @@ xfs_buf_item_format_segment(
*/
base_size = offsetof(struct xfs_buf_log_format, blf_data_map) +
(blfp->blf_map_size * sizeof(blfp->blf_data_map[0]));

nvecs = 0;
first_bit = xfs_next_bit(blfp->blf_data_map, blfp->blf_map_size, 0);
if (!(bip->bli_flags & XFS_BLI_STALE) && first_bit == -1) {
/*
* If the map is not be dirty in the transaction, mark
* the size as zero and do not advance the vector pointer.
*/
goto out;
}

vecp->i_addr = blfp;
vecp->i_len = base_size;
vecp->i_type = XLOG_REG_TYPE_BFORMAT;
Expand All @@ -301,15 +312,13 @@ xfs_buf_item_format_segment(
*/
trace_xfs_buf_item_format_stale(bip);
ASSERT(blfp->blf_flags & XFS_BLF_CANCEL);
blfp->blf_size = nvecs;
return vecp;
goto out;
}

/*
* Fill in an iovec for each set of contiguous chunks.
*/
first_bit = xfs_next_bit(blfp->blf_data_map, blfp->blf_map_size, 0);
ASSERT(first_bit != -1);

last_bit = first_bit;
nbits = 1;
for (;;) {
Expand Down Expand Up @@ -371,7 +380,8 @@ xfs_buf_item_format_segment(
nbits++;
}
}
bip->__bli_format.blf_size = nvecs;
out:
blfp->blf_size = nvecs;
return vecp;
}

Expand Down

0 comments on commit 37707cc

Please sign in to comment.