diff options
author | Evgeniy Dushistov <dushistov@mail.ru> | 2006-06-25 08:47:22 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-25 13:01:02 -0400 |
commit | 9695ef16ed4e00b59303f39f9a4a422a2c6a3b89 (patch) | |
tree | fba8946e86a523a5d53936cf5ec9e0a150037f73 /fs/ufs/util.c | |
parent | b71034e5e67d1577424cebe7bbb7d0ce134a4cd8 (diff) |
[PATCH] ufs: wrong type cast
There are two ugly macros in ufs code:
#define UCPI_UBH ((struct ufs_buffer_head *)ucpi)
#define USPI_UBH ((struct ufs_buffer_head *)uspi)
when uspi looks like
struct {
struct ufs_buffer_head ;
}
and USPI_UBH has some sence,
ucpi looks like
struct {
struct not_ufs_buffer_head;
}
To prevent bugs in future, this patch convert macros to inline function and
fix "ucpi" structure.
Signed-off-by: Evgeniy Dushistov <dushistov@mail.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/ufs/util.c')
-rw-r--r-- | fs/ufs/util.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/fs/ufs/util.c b/fs/ufs/util.c index 72f91cc84bfe..f9556bc484ef 100644 --- a/fs/ufs/util.c +++ b/fs/ufs/util.c | |||
@@ -63,17 +63,17 @@ struct ufs_buffer_head * ubh_bread_uspi (struct ufs_sb_private_info * uspi, | |||
63 | count = size >> uspi->s_fshift; | 63 | count = size >> uspi->s_fshift; |
64 | if (count <= 0 || count > UFS_MAXFRAG) | 64 | if (count <= 0 || count > UFS_MAXFRAG) |
65 | return NULL; | 65 | return NULL; |
66 | USPI_UBH->fragment = fragment; | 66 | USPI_UBH(uspi)->fragment = fragment; |
67 | USPI_UBH->count = count; | 67 | USPI_UBH(uspi)->count = count; |
68 | for (i = 0; i < count; i++) | 68 | for (i = 0; i < count; i++) |
69 | if (!(USPI_UBH->bh[i] = sb_bread(sb, fragment + i))) | 69 | if (!(USPI_UBH(uspi)->bh[i] = sb_bread(sb, fragment + i))) |
70 | goto failed; | 70 | goto failed; |
71 | for (; i < UFS_MAXFRAG; i++) | 71 | for (; i < UFS_MAXFRAG; i++) |
72 | USPI_UBH->bh[i] = NULL; | 72 | USPI_UBH(uspi)->bh[i] = NULL; |
73 | return USPI_UBH; | 73 | return USPI_UBH(uspi); |
74 | failed: | 74 | failed: |
75 | for (j = 0; j < i; j++) | 75 | for (j = 0; j < i; j++) |
76 | brelse (USPI_UBH->bh[j]); | 76 | brelse (USPI_UBH(uspi)->bh[j]); |
77 | return NULL; | 77 | return NULL; |
78 | } | 78 | } |
79 | 79 | ||
@@ -90,11 +90,11 @@ void ubh_brelse (struct ufs_buffer_head * ubh) | |||
90 | void ubh_brelse_uspi (struct ufs_sb_private_info * uspi) | 90 | void ubh_brelse_uspi (struct ufs_sb_private_info * uspi) |
91 | { | 91 | { |
92 | unsigned i; | 92 | unsigned i; |
93 | if (!USPI_UBH) | 93 | if (!USPI_UBH(uspi)) |
94 | return; | 94 | return; |
95 | for ( i = 0; i < USPI_UBH->count; i++ ) { | 95 | for ( i = 0; i < USPI_UBH(uspi)->count; i++ ) { |
96 | brelse (USPI_UBH->bh[i]); | 96 | brelse (USPI_UBH(uspi)->bh[i]); |
97 | USPI_UBH->bh[i] = NULL; | 97 | USPI_UBH(uspi)->bh[i] = NULL; |
98 | } | 98 | } |
99 | } | 99 | } |
100 | 100 | ||