Messages in this thread | | | From | Philipp Reisner <> | Subject | Re: [PATCH 03/12] DRBD: bitmap | Date | Wed, 8 Apr 2009 17:09:56 +0200 |
| |
On Wednesday 08 April 2009 12:16:11 Nikanth K wrote: > On Mon, Mar 23, 2009 at 9:17 PM, Philipp Reisner > > <philipp.reisner@linbit.com> wrote: > > +/* definition of bits in bm_flags */ > > +#define BM_LOCKED 0 > > +#define BM_MD_IO_ERROR (BITS_PER_LONG-1) /* 31? 63? */ > > Wonder whether this should be made same for 32-bit as well as 64-bit? > Especially for x86_64 as the machine can become 32-bit to 64-bit or > vice-versa after reboot. >
This is only a bitnumber for an in memory flag word (bm_flags). I changed that to
#define BM_LOCKED 0 #define BM_MD_IO_ERROR 1
What was before was just unnecessary complex.
> > <snip> > > > +#if 0 > > +#define catch_oob_access_start() do { \ > > + do { \ > > + if ((bm-p_addr) >= PAGE_SIZE/sizeof(long)) { \ > > + printk(KERN_ALERT "drbd_bitmap.c:%u %s: p_addr:%p > > bm:%p %d\n", \ + __LINE__ , > > __func__ , p_addr, bm, (bm-p_addr)); \ + break; > > \ > > + } > > +#define catch_oob_access_end() \ > > + } while (0); } while (0) > > +#else > > +#define catch_oob_access_start() do { > > +#define catch_oob_access_end() } while (0) > > +#endif > > + > > Probably should be changed to be based on a config debug option?
I removed the macro definitions as well as these macro invocations. They where used to find bugs years ago. Unnecessary nowadays.
> <snip> > > > +/* > > + * since (b->bm_bits % BITS_PER_LONG) != 0, > > + * this masks out the remaining bits. > > + * Rerturns the number of bits cleared. > > + */ > > +STATIC int bm_clear_surplus(struct drbd_bitmap *b) > > +{ > > + const unsigned long mask = (1UL << (b->bm_bits & > > (BITS_PER_LONG-1))) - 1; > > Should BM_MD_IO_ERROR be used instead of (BITS_PER_LONG-1)? > Or at least this deserves a macro as it is used in many places. >
Well, BITS_PER_LONG is now used in two functions only (after I removed that from the definition of BM_MD_IO_ERROR). I will leave it open coded, as it is now.
Thanks for these comments!
-Phil -- : Dipl-Ing Philipp Reisner : LINBIT | Your Way to High Availability : Tel: +43-1-8178292-50, Fax: +43-1-8178292-82 : http://www.linbit.com
DRBD(R) and LINBIT(R) are registered trademarks of LINBIT, Austria.
-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |