Created
December 30, 2011 19:16
-
-
Save Se7soz/1541091 to your computer and use it in GitHub Desktop.
servers/apfs/buffer.c: fixed put_block call to find_block instead of get_block that creates the block if it doesn't exist.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
commit 4d7f4a5e3b9561f37ee5f61727e7b48c3065c446 | |
Author: Hussein El-Sayed <[email protected]> | |
Date: Fri Dec 30 23:28:15 2011 +0000 | |
servers/apfs/buffer.c: fixed put_block call to find_block instead of get_blo | |
that creates the block if it doesn't exist. | |
diff --git a/servers/apfs/buffer.c b/servers/apfs/buffer.c | |
index a5c77b4..de18e8c 100644 | |
--- a/servers/apfs/buffer.c | |
+++ b/servers/apfs/buffer.c | |
@@ -18,22 +18,32 @@ PUBLIC void buf_pool(void) | |
rear = NULL; | |
} | |
- | |
- | |
/*===========================================================================* | |
- * get_block * | |
+ * find_block * | |
*===========================================================================*/ | |
-PUBLIC struct buf *get_block(dev_t dev, ino_t inum) | |
+PRIVATE struct buf *find_block(dev_t dev, ino_t inum) | |
{ | |
struct buf *bp = front; | |
while(bp != NULL) { | |
- if (bp->b_dev == dev && bp->b_num == inum) { | |
+ if (bp->b_dev == dev && bp->b_num == inum) { | |
bp->b_count++; | |
return(bp); | |
} | |
bp = bp->b_next; | |
} | |
+ /* Buffer not found */ | |
+ return (NULL); | |
+} | |
+ | |
+/*===========================================================================* | |
+ * get_block * | |
+ *===========================================================================*/ | |
+PUBLIC struct buf *get_block(dev_t dev, ino_t inum) | |
+{ | |
+ struct buf *bp = find_block(dev, inum); | |
+ | |
+ if(bp != NULL) return bp; | |
/* Buffer was not found. Try to allocate a new one */ | |
return new_block(dev, inum); | |
@@ -81,7 +91,7 @@ PUBLIC void put_block(dev_t dev, ino_t inum) | |
{ | |
struct buf *bp; | |
- bp = get_block(dev, inum); | |
+ bp = find_block(dev, inum); | |
if (bp == NULL) return; /* We didn't find the block. Nothing to put. */ | |
bp->b_count--; /* Compensate for above 'get_block'. */ | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment