I get 2 rejects applying 2.2.19-ext3 to latest errata rh 2.2.19 kernel.
1)
fs/buffer.c
Should I put "J_ASSERT(buf->b_count > 0);" before or after
" *(int *)0 = 0;"?
===== ext3 0.0.7a patch
--- 934,946 ----
if (buf->b_count) {
buf->b_count--;
+ if (!buf->b_count &&
+ (buf->b_jlist != BJ_None && buf->b_jlist != BJ_Shadow
&& buf->b_jlis
t != BJ_Data))
+ J_ASSERT (!test_bit(BH_JWrite, &buf->b_state));
return;
}
printk("VFS: brelse: Trying to free free buffer\n");
+ J_ASSERT(buf->b_count > 0);
}
===== redhat latest 2.2.19
if (buf->b_count) {
buf->b_count--;
return;
}
printk("VFS: brelse: Trying to free free buffer\n");
*(int *)0 = 0;
}
2)
include/linux/fs.h
Can I still just increase by one from BH_Temp on as advised here
https://listman.redhat.com/pipermail/ext3-users/2001-April/000448.html
===== ext3 patch
--- 197,221 ----
#define BH_Req 3 /* 0 if the buffer has been invalidated */
#define BH_Protected 6 /* 1 if the buffer is protected */
#define BH_Req 3 /* 0 if the buffer has been invalidated */
#define BH_Protected 6 /* 1 if the buffer is protected */
#define BH_Wait_IO 7 /* 1 if we should throttle on this buffer */
+ #define BH_Temp 8 /* 1 if the buffer is temporary (unlinked) */
+ #define BH_JWrite 9 /* 1 if being written to log (@@@ DEBUGGING) */
+ #define BH_QuickFree 10 /* 1 if alloced and freed quickly (see below)*/
+ #define BH_Alloced 11 /* 1 if buffer has been allocated */
+ #define BH_Freed 12 /* 1 if buffer has been freed (truncated) */
+ #define BH_Revoked 13 /* 1 if buffer has b
===== redhat latest 2.2.19
/* bh state bits */
#define BH_Uptodate 0 /* 1 if the buffer contains valid data */
#define BH_Dirty 1 /* 1 if the buffer is dirty */
#define BH_Lock 2 /* 1 if the buffer is locked */
#define BH_Req 3 /* 0 if the buffer has been invalidated */
#define BH_Protected 6 /* 1 if the buffer is protected */
#define BH_Wait_IO 7 /* 1 if we should throttle on this buffer */
#define BH_LowPrio 8 /* 1 if the buffer is lowprio */
Thanks
--
giulioo@pobox.com