]> git.neil.brown.name Git - LaFS.git/commitdiff
make strblk safer
authorNeilBrown <neilb@suse.de>
Thu, 19 Mar 2009 04:11:21 +0000 (15:11 +1100)
committerNeilBrown <neilb@suse.de>
Thu, 19 Mar 2009 04:11:21 +0000 (15:11 +1100)
Check if ->inode is non-NULL before de-referencing it.

checkpoint.c

index 258405f88a8361cad71bdb56dc21fdcfc8834b91..929ec5549b42b9654ee28ab18054fa1588693da9 100644 (file)
@@ -101,15 +101,18 @@ static char *strflags(struct block *b)
 char *strblk(struct block *b)
 {
        static char ans[400];
+       unsigned long ino = 0;
 
        if (!b) return "(NULL block)";
+       if (b->inode)
+               ino = b->inode->i_ino;
        if (test_bit(B_PhysValid, &b->flags))
-       sprintf(ans, "[%p]%lu/%lu(%llu)r%d%c:%s", b,b->inode->i_ino, b->fileaddr,
+       sprintf(ans, "[%p]%lu/%lu(%llu)r%d%c:%s", b, ino, b->fileaddr,
                b->physaddr, atomic_read(&b->refcnt),
                list_empty(&b->lru) ? 'E':'F',
                strflags(b));
        else
-       sprintf(ans, "[%p]%lu/%lu(NoPhysAddr)r%d%c:%s", b,b->inode->i_ino, b->fileaddr,
+       sprintf(ans, "[%p]%lu/%lu(NoPhysAddr)r%d%c:%s", b, ino, b->fileaddr,
                atomic_read(&b->refcnt),
                list_empty(&b->lru) ? 'E':'F',
                strflags(b));