* [PATCH] regression: bfs endianness bug
@ 2007-12-05 8:32 Al Viro
0 siblings, 0 replies; only message in thread
From: Al Viro @ 2007-12-05 8:32 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Dmitri Vorobiev, Tigran Aivazian, linux-kernel
BFS_FILEBLOCKS() expects struct bfs_inode * (on-disk data, with little-endian
fields), not struct bfs_inode_info * (in-core stuff, with host-endian ones).
It's a macro and fields with the right names are present in bfs_inode_info,
so it compiles, but on big-endian host it gives bogus results.
Introduced in commit f433dc56344cb72cc3de5ba0819021cec3aef807 (Fixes to the
BFS filesystem driver).
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c
index 294c41b..a64a71d 100644
--- a/fs/bfs/inode.c
+++ b/fs/bfs/inode.c
@@ -178,7 +178,8 @@ static void bfs_delete_inode(struct inode *inode)
brelse(bh);
if (bi->i_dsk_ino) {
- info->si_freeb += BFS_FILEBLOCKS(bi);
+ if (bi->i_sblock)
+ info->si_freeb += bi->i_eblock + 1 - bi->i_sblock;
info->si_freei++;
clear_bit(ino, info->si_imap);
dump_imap("delete_inode", s);
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2007-12-05 8:33 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-05 8:32 [PATCH] regression: bfs endianness bug Al Viro
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.