Submit #2783 » 0002-sbin-hammer-cleanups.patch
sbin/hammer/ondisk.c | ||
---|---|---|
get_buffer_data(hammer_off_t buf_offset, struct buffer_info **bufferp,
|
||
int isnew)
|
||
{
|
||
struct buffer_info *buffer;
|
||
if ((buffer = *bufferp) != NULL) {
|
||
if (*bufferp != NULL) {
|
||
if (isnew > 0 ||
|
||
((buffer->buf_offset ^ buf_offset) & ~HAMMER_BUFMASK64)) {
|
||
rel_buffer(buffer);
|
||
buffer = *bufferp = NULL;
|
||
(((*bufferp)->buf_offset ^ buf_offset) & ~HAMMER_BUFMASK64)) {
|
||
rel_buffer(*bufferp);
|
||
*bufferp = NULL;
|
||
}
|
||
}
|
||
return get_ondisk(buf_offset, bufferp, isnew);
|
||
... | ... | |
/*
|
||
* Retrieve a pointer to a B-Tree node given a cluster offset. The underlying
|
||
* bufp is freed if non-NULL and a referenced buffer is loaded into it.
|
||
* bufferp is freed if non-NULL and a referenced buffer is loaded into it.
|
||
*/
|
||
hammer_node_ondisk_t
|
||
get_node(hammer_off_t node_offset, struct buffer_info **bufp)
|
||
get_node(hammer_off_t node_offset, struct buffer_info **bufferp)
|
||
{
|
||
if (*bufp) {
|
||
rel_buffer(*bufp);
|
||
*bufp = NULL;
|
||
if (*bufferp != NULL) {
|
||
rel_buffer(*bufferp);
|
||
*bufferp = NULL;
|
||
}
|
||
return get_ondisk(node_offset, bufp, 0);
|
||
return get_ondisk(node_offset, bufferp, 0);
|
||
}
|
||
/*
|
- « Previous
- 1
- 2
- Next »