From: <rsw...@us...> - 2010-06-29 22:02:32
|
Revision: 352 http://iscsitarget.svn.sourceforge.net/iscsitarget/?rev=352&view=rev Author: rswwalker Date: 2010-06-29 22:02:26 +0000 (Tue, 29 Jun 2010) Log Message: ----------- log2.h wasn't generally available until 2.6.21 release. Added new compat.h file to hold global kernel compatibility defines going forward. Hopefully we can move some of the patches into either compat.h or each modules own header file. digest.h would be a good location for the shifting crypto API stuff, event.h for the netlink stuff, and maybe a cache.h for the kernel object cache. Signed-off-by: Ross Walker Modified Paths: -------------- branches/1.4.20/kernel/block-io.c branches/1.4.20/kernel/file-io.c branches/1.4.20/kernel/iscsi.h branches/1.4.20/kernel/null-io.c branches/1.4.20/kernel/volume.c branches/1.4.20/patches/compat-2.6.14-2.6.18.patch Added Paths: ----------- branches/1.4.20/kernel/compat.h Modified: branches/1.4.20/kernel/block-io.c =================================================================== --- branches/1.4.20/kernel/block-io.c 2010-06-29 22:01:41 UTC (rev 351) +++ branches/1.4.20/kernel/block-io.c 2010-06-29 22:02:26 UTC (rev 352) @@ -282,8 +282,8 @@ /* see Documentation/ABI/testing/sysfs-block */ unsigned bsz = bdev_logical_block_size(bio_data->bdev); if (!volume->blk_shift) - volume->blk_shift = ilog2(bsz); - else if (volume->blk_shift < ilog2(bsz)) { + volume->blk_shift = blksize_bits(bsz); + else if (volume->blk_shift < blksize_bits(bsz)) { eprintk("Specified block size (%u) smaller than " "device %s logical block size (%u)\n", (1 << volume->blk_shift), bio_data->path, bsz); Added: branches/1.4.20/kernel/compat.h =================================================================== --- branches/1.4.20/kernel/compat.h (rev 0) +++ branches/1.4.20/kernel/compat.h 2010-06-29 22:02:26 UTC (rev 352) @@ -0,0 +1,30 @@ +/* + * Kernel compatibility routines + * + * Copyright (C) 2008 Ross Walker <rswwalker at gmail dot com> + * + * Released under the terms of the GNU GPL v2.0. + */ + +#ifndef __IET_COMPAT_H__ +#define __IET_COMPAT_H__ + +#include <linux/version.h> + +#ifndef DECLARE_COMPLETION_ONSTACK +#define DECLARE_COMPLETION_ONSTACK(work) DECLARE_COMPLETION(work) +#endif + +#ifndef is_power_of_2 +#define is_power_of_2(n) (n != 0 && ((n & (n - 1)) == 0)) +#endif + +#ifndef log2 +#define log2(n) ((sizeof(n) <= 4) ? (fls(n) - 1) : (fls64(n) - 1)) +#endif + +#ifndef roundup_pow_of_two +#define roundup_pow_of_two(n) (1UL << fls_long(n - 1)) +#endif + +#endif /* __IET_COMPAT_H__ */ Modified: branches/1.4.20/kernel/file-io.c =================================================================== --- branches/1.4.20/kernel/file-io.c 2010-06-29 22:01:41 UTC (rev 351) +++ branches/1.4.20/kernel/file-io.c 2010-06-29 22:02:26 UTC (rev 352) @@ -232,7 +232,7 @@ } if (!lu->blk_shift) - lu->blk_shift = ilog2(IET_DEF_BLOCK_SIZE); + lu->blk_shift = blksize_bits(IET_DEF_BLOCK_SIZE); lu->blk_cnt = inode->i_size >> lu->blk_shift; Modified: branches/1.4.20/kernel/iscsi.h =================================================================== --- branches/1.4.20/kernel/iscsi.h 2010-06-29 22:01:41 UTC (rev 351) +++ branches/1.4.20/kernel/iscsi.h 2010-06-29 22:02:26 UTC (rev 352) @@ -19,6 +19,7 @@ #include "iscsi_hdr.h" #include "iet_u.h" +#include "compat.h" #define IET_SENSE_BUF_SIZE 18 Modified: branches/1.4.20/kernel/null-io.c =================================================================== --- branches/1.4.20/kernel/null-io.c 2010-06-29 22:01:41 UTC (rev 351) +++ branches/1.4.20/kernel/null-io.c 2010-06-29 22:02:26 UTC (rev 352) @@ -78,7 +78,7 @@ } if (!lu->blk_shift) - lu->blk_shift = ilog2(IET_DEF_BLOCK_SIZE); + lu->blk_shift = blksize_bits(IET_DEF_BLOCK_SIZE); /* defaults to 64 GiB */ if (!lu->blk_cnt) Modified: branches/1.4.20/kernel/volume.c =================================================================== --- branches/1.4.20/kernel/volume.c 2010-06-29 22:01:41 UTC (rev 351) +++ branches/1.4.20/kernel/volume.c 2010-06-29 22:02:26 UTC (rev 352) @@ -6,7 +6,6 @@ #include <linux/types.h> #include <linux/parser.h> -#include <linux/log2.h> #include "iscsi.h" #include "iscsi_dbg.h" @@ -187,7 +186,7 @@ blk_sz = simple_strtoull(argp, NULL, 10); if (is_power_of_2(blk_sz) && 512 <= blk_sz && blk_sz <= IET_MAX_BLOCK_SIZE) - volume->blk_shift = ilog2(blk_sz); + volume->blk_shift = blksize_bits(blk_sz); else { eprintk("invalid BlockSize=%u\n", blk_sz); err = -EINVAL; Modified: branches/1.4.20/patches/compat-2.6.14-2.6.18.patch =================================================================== --- branches/1.4.20/patches/compat-2.6.14-2.6.18.patch 2010-06-29 22:01:41 UTC (rev 351) +++ branches/1.4.20/patches/compat-2.6.14-2.6.18.patch 2010-06-29 22:02:26 UTC (rev 352) @@ -2,17 +2,6 @@ =================================================================== --- 1/kernel/iscsi.h (revision 105) +++ 2/kernel/iscsi.h (working copy) -@@ -20,6 +20,10 @@ - #include "iscsi_hdr.h" - #include "iet_u.h" - -+#ifndef DECLARE_COMPLETION_ONSTACK -+# define DECLARE_COMPLETION_ONSTACK(work) DECLARE_COMPLETION(work) -+#endif -+ - #define IET_SENSE_BUF_SIZE 18 - - struct iscsi_sess_param { @@ -261,8 +261,8 @@ struct iscsi_conn { u32 write_offset; int write_state; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |