* [PATCH] fs/xfs: remove duplicated defines
@ 2007-11-11 12:43 Nicolas Kaiser
2007-11-11 23:57 ` Eric Sandeen
` (9 more replies)
0 siblings, 10 replies; 17+ messages in thread
From: Nicolas Kaiser @ 2007-11-11 12:43 UTC (permalink / raw)
To: kernel-janitors
Remove duplicated defines.
Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
---
fs/xfs/linux-2.6/xfs_linux.h | 4 ----
1 file changed, 4 deletions(-)
--- a/fs/xfs/linux-2.6/xfs_linux.h 2007-11-07 11:26:20.000000000 +0100
+++ b/fs/xfs/linux-2.6/xfs_linux.h 2007-11-11 13:07:11.000000000 +0100
@@ -167,12 +167,8 @@
/* clicks to bytes */
#define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
-#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
#define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
-/* bytes to clicks */
-#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
-
#define ENOATTR ENODATA /* Attribute not found */
#define EWRONGFS EINVAL /* Mount with wrong filesystem type */
#define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [xfs-masters] [PATCH] fs/xfs: remove duplicated defines
2007-11-11 12:43 [PATCH] fs/xfs: remove duplicated defines Nicolas Kaiser
@ 2007-11-11 23:57 ` Eric Sandeen
2007-11-12 0:28 ` Timothy Shimmin
` (8 subsequent siblings)
9 siblings, 0 replies; 17+ messages in thread
From: Eric Sandeen @ 2007-11-11 23:57 UTC (permalink / raw)
To: xfs-masters; +Cc: xfs, kernel-janitors
Nicolas Kaiser wrote:
> Remove duplicated defines.
>
> Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
> ---
Heh, each defined twice, but used 0 times in the kernel. Could probably
just remove them altogether (though I guess btoc is used in
xfstests/ltp/doio.c in userspace/xfstests, but that's the *only* place)
-Eric
> fs/xfs/linux-2.6/xfs_linux.h | 4 ----
> 1 file changed, 4 deletions(-)
>
> --- a/fs/xfs/linux-2.6/xfs_linux.h 2007-11-07 11:26:20.000000000 +0100
> +++ b/fs/xfs/linux-2.6/xfs_linux.h 2007-11-11 13:07:11.000000000 +0100
> @@ -167,12 +167,8 @@
>
> /* clicks to bytes */
> #define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
> -#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
> #define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
>
> -/* bytes to clicks */
> -#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
> -
> #define ENOATTR ENODATA /* Attribute not found */
> #define EWRONGFS EINVAL /* Mount with wrong filesystem type */
> #define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
>
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [xfs-masters] [PATCH] fs/xfs: remove duplicated defines
@ 2007-11-11 23:57 ` Eric Sandeen
0 siblings, 0 replies; 17+ messages in thread
From: Eric Sandeen @ 2007-11-11 23:57 UTC (permalink / raw)
To: xfs-masters; +Cc: xfs, kernel-janitors
Nicolas Kaiser wrote:
> Remove duplicated defines.
>
> Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
> ---
Heh, each defined twice, but used 0 times in the kernel. Could probably
just remove them altogether (though I guess btoc is used in
xfstests/ltp/doio.c in userspace/xfstests, but that's the *only* place)
-Eric
> fs/xfs/linux-2.6/xfs_linux.h | 4 ----
> 1 file changed, 4 deletions(-)
>
> --- a/fs/xfs/linux-2.6/xfs_linux.h 2007-11-07 11:26:20.000000000 +0100
> +++ b/fs/xfs/linux-2.6/xfs_linux.h 2007-11-11 13:07:11.000000000 +0100
> @@ -167,12 +167,8 @@
>
> /* clicks to bytes */
> #define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
> -#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
> #define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
>
> -/* bytes to clicks */
> -#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
> -
> #define ENOATTR ENODATA /* Attribute not found */
> #define EWRONGFS EINVAL /* Mount with wrong filesystem type */
> #define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
>
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [xfs-masters] [PATCH] fs/xfs: remove duplicated defines
2007-11-11 23:57 ` Eric Sandeen
@ 2007-11-12 0:09 ` Timothy Shimmin
-1 siblings, 0 replies; 17+ messages in thread
From: Timothy Shimmin @ 2007-11-12 0:09 UTC (permalink / raw)
To: Eric Sandeen; +Cc: xfs-masters, xfs, kernel-janitors
Eric Sandeen wrote:
> Nicolas Kaiser wrote:
>> Remove duplicated defines.
>>
>> Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
>> ---
>
> Heh, each defined twice, but used 0 times in the kernel. Could probably
> just remove them altogether (though I guess btoc is used in
> xfstests/ltp/doio.c in userspace/xfstests, but that's the *only* place)
>
Yes, that's what I was just noticing - how they are not used anyway.
> grep -Ir btoc . | egrep -v 'tag|anot'
./linux-2.6/xfs_linux.h:#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
./linux-2.6/xfs_linux.h:#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
./linux-2.6/xfs_linux.h:#define btoc64(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
./linux-2.6/xfs_linux.h:#define btoct64(x) ((__uint64_t)(x)>>BPCSHIFT)
./linux-2.6/xfs_linux.h:#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
./linux-2.6/xfs_linux.h:#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
./linux-2.6/xfs_buf.c: page_count = xfs_buf_btoc(end) - xfs_buf_btoct(bp->b_file_offset);
./linux-2.6/xfs_buf.c: page = bp->b_pages[xfs_buf_btoct(boff + bp->b_offset)];
./linux-2.6/xfs_buf.h:#define xfs_buf_btoc(dd) (((dd) + PAGE_CACHE_SIZE-1) >> PAGE_CACHE_SHIFT)
./linux-2.6/xfs_buf.h:#define xfs_buf_btoct(dd) ((dd) >> PAGE_CACHE_SHIFT)
--Tim
> -Eric
>
>> fs/xfs/linux-2.6/xfs_linux.h | 4 ----
>> 1 file changed, 4 deletions(-)
>>
>> --- a/fs/xfs/linux-2.6/xfs_linux.h 2007-11-07 11:26:20.000000000 +0100
>> +++ b/fs/xfs/linux-2.6/xfs_linux.h 2007-11-11 13:07:11.000000000 +0100
>> @@ -167,12 +167,8 @@
>>
>> /* clicks to bytes */
>> #define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
>> -#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
>> #define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
>>
>> -/* bytes to clicks */
>> -#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
>> -
>> #define ENOATTR ENODATA /* Attribute not found */
>> #define EWRONGFS EINVAL /* Mount with wrong filesystem type */
>> #define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
>>
>>
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [xfs-masters] [PATCH] fs/xfs: remove duplicated defines
@ 2007-11-12 0:09 ` Timothy Shimmin
0 siblings, 0 replies; 17+ messages in thread
From: Timothy Shimmin @ 2007-11-12 0:09 UTC (permalink / raw)
To: Eric Sandeen; +Cc: xfs-masters, xfs, kernel-janitors
Eric Sandeen wrote:
> Nicolas Kaiser wrote:
>> Remove duplicated defines.
>>
>> Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
>> ---
>
> Heh, each defined twice, but used 0 times in the kernel. Could probably
> just remove them altogether (though I guess btoc is used in
> xfstests/ltp/doio.c in userspace/xfstests, but that's the *only* place)
>
Yes, that's what I was just noticing - how they are not used anyway.
> grep -Ir btoc . | egrep -v 'tag|anot'
./linux-2.6/xfs_linux.h:#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
./linux-2.6/xfs_linux.h:#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
./linux-2.6/xfs_linux.h:#define btoc64(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
./linux-2.6/xfs_linux.h:#define btoct64(x) ((__uint64_t)(x)>>BPCSHIFT)
./linux-2.6/xfs_linux.h:#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
./linux-2.6/xfs_linux.h:#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
./linux-2.6/xfs_buf.c: page_count = xfs_buf_btoc(end) - xfs_buf_btoct(bp->b_file_offset);
./linux-2.6/xfs_buf.c: page = bp->b_pages[xfs_buf_btoct(boff + bp->b_offset)];
./linux-2.6/xfs_buf.h:#define xfs_buf_btoc(dd) (((dd) + PAGE_CACHE_SIZE-1) >> PAGE_CACHE_SHIFT)
./linux-2.6/xfs_buf.h:#define xfs_buf_btoct(dd) ((dd) >> PAGE_CACHE_SHIFT)
--Tim
> -Eric
>
>> fs/xfs/linux-2.6/xfs_linux.h | 4 ----
>> 1 file changed, 4 deletions(-)
>>
>> --- a/fs/xfs/linux-2.6/xfs_linux.h 2007-11-07 11:26:20.000000000 +0100
>> +++ b/fs/xfs/linux-2.6/xfs_linux.h 2007-11-11 13:07:11.000000000 +0100
>> @@ -167,12 +167,8 @@
>>
>> /* clicks to bytes */
>> #define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
>> -#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
>> #define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
>>
>> -/* bytes to clicks */
>> -#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
>> -
>> #define ENOATTR ENODATA /* Attribute not found */
>> #define EWRONGFS EINVAL /* Mount with wrong filesystem type */
>> #define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
>>
>>
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [xfs-masters] [PATCH] fs/xfs: remove duplicated defines
2007-11-11 12:43 [PATCH] fs/xfs: remove duplicated defines Nicolas Kaiser
2007-11-11 23:57 ` Eric Sandeen
@ 2007-11-12 0:28 ` Timothy Shimmin
2007-11-12 0:33 ` [xfs-masters] " Timothy Shimmin
` (7 subsequent siblings)
9 siblings, 0 replies; 17+ messages in thread
From: Timothy Shimmin @ 2007-11-12 0:28 UTC (permalink / raw)
To: kernel-janitors
[-- Attachment #1: Type: text/plain, Size: 2358 bytes --]
Timothy Shimmin wrote:
> Eric Sandeen wrote:
>> Nicolas Kaiser wrote:
>>> Remove duplicated defines.
>>>
>>> Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
>>> ---
>>
>> Heh, each defined twice, but used 0 times in the kernel. Could probably
>> just remove them altogether (though I guess btoc is used in
>> xfstests/ltp/doio.c in userspace/xfstests, but that's the *only* place)
>>
> Yes, that's what I was just noticing - how they are not used anyway.
>
> > grep -Ir btoc . | egrep -v 'tag|anot'
> ./linux-2.6/xfs_linux.h:#define btoc(x)
> (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
> ./linux-2.6/xfs_linux.h:#define btoct(x)
> ((__psunsigned_t)(x)>>BPCSHIFT)
> ./linux-2.6/xfs_linux.h:#define btoc64(x)
> (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
> ./linux-2.6/xfs_linux.h:#define btoct64(x) ((__uint64_t)(x)>>BPCSHIFT)
> ./linux-2.6/xfs_linux.h:#define btoct(x)
> ((__psunsigned_t)(x)>>BPCSHIFT)
> ./linux-2.6/xfs_linux.h:#define btoc(x)
> (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
> ./linux-2.6/xfs_buf.c: page_count = xfs_buf_btoc(end) -
> xfs_buf_btoct(bp->b_file_offset);
> ./linux-2.6/xfs_buf.c: page = bp->b_pages[xfs_buf_btoct(boff +
> bp->b_offset)];
> ./linux-2.6/xfs_buf.h:#define xfs_buf_btoc(dd) (((dd) +
> PAGE_CACHE_SIZE-1) >> PAGE_CACHE_SHIFT)
> ./linux-2.6/xfs_buf.h:#define xfs_buf_btoct(dd) ((dd) >> PAGE_CACHE_SHIFT)
>
> --Tim
>
>> -Eric
>>
>>> fs/xfs/linux-2.6/xfs_linux.h | 4 ----
>>> 1 file changed, 4 deletions(-)
>>>
>>> --- a/fs/xfs/linux-2.6/xfs_linux.h 2007-11-07 11:26:20.000000000
>>> +0100
>>> +++ b/fs/xfs/linux-2.6/xfs_linux.h 2007-11-11 13:07:11.000000000
>>> +0100
>>> @@ -167,12 +167,8 @@
>>>
>>> /* clicks to bytes */
>>> #define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
>>> -#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
>>> #define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
>>>
>>> -/* bytes to clicks */
>>> -#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
>>> -
>>> #define ENOATTR ENODATA /* Attribute not found */
>>> #define EWRONGFS EINVAL /* Mount with wrong filesystem
>>> type */
>>> #define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
>>>
>>>
>>
>
So I'm thinking of "seeing" your patch and raising you by my attached patch :-)
--Tim
[-- Attachment #2: btoc.patch --]
[-- Type: text/x-patch, Size: 1377 bytes --]
===========================================================================
Index: fs/xfs/linux-2.6/xfs_linux.h
===========================================================================
--- a/fs/xfs/linux-2.6/xfs_linux.h 2007-11-12 11:24:05.000000000 +1100
+++ b/fs/xfs/linux-2.6/xfs_linux.h 2007-11-12 11:14:22.818831666 +1100
@@ -159,12 +159,6 @@
/* number of BB's per block device block */
#define BLKDEV_BB BTOBB(BLKDEV_IOSIZE)
-/* bytes to clicks */
-#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
-#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
-#define btoc64(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
-#define btoct64(x) ((__uint64_t)(x)>>BPCSHIFT)
-
/* off_t bytes to clicks */
#define offtoc(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
#define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
@@ -172,14 +166,6 @@
/* clicks to off_t bytes */
#define ctooff(x) ((xfs_off_t)(x)<<BPCSHIFT)
-/* clicks to bytes */
-#define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
-#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
-#define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
-
-/* bytes to clicks */
-#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
-
#define ENOATTR ENODATA /* Attribute not found */
#define EWRONGFS EINVAL /* Mount with wrong filesystem type */
#define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [xfs-masters] Re: [PATCH] fs/xfs: remove duplicated defines
2007-11-11 12:43 [PATCH] fs/xfs: remove duplicated defines Nicolas Kaiser
2007-11-11 23:57 ` Eric Sandeen
2007-11-12 0:28 ` Timothy Shimmin
@ 2007-11-12 0:33 ` Timothy Shimmin
2007-11-12 2:04 ` David Chinner
` (6 subsequent siblings)
9 siblings, 0 replies; 17+ messages in thread
From: Timothy Shimmin @ 2007-11-12 0:33 UTC (permalink / raw)
To: kernel-janitors
Timothy Shimmin wrote:
> Timothy Shimmin wrote:
>> Eric Sandeen wrote:
>>> Nicolas Kaiser wrote:
>>>> Remove duplicated defines.
>>>>
>>>> Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
>>>> ---
>>> Heh, each defined twice, but used 0 times in the kernel. Could probably
>>> just remove them altogether (though I guess btoc is used in
>>> xfstests/ltp/doio.c in userspace/xfstests, but that's the *only* place)
>>>
>> Yes, that's what I was just noticing - how they are not used anyway.
>>
>> > grep -Ir btoc . | egrep -v 'tag|anot'
>> ./linux-2.6/xfs_linux.h:#define btoc(x)
>> (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
>> ./linux-2.6/xfs_linux.h:#define btoct(x)
>> ((__psunsigned_t)(x)>>BPCSHIFT)
>> ./linux-2.6/xfs_linux.h:#define btoc64(x)
>> (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
>> ./linux-2.6/xfs_linux.h:#define btoct64(x) ((__uint64_t)(x)>>BPCSHIFT)
>> ./linux-2.6/xfs_linux.h:#define btoct(x)
>> ((__psunsigned_t)(x)>>BPCSHIFT)
>> ./linux-2.6/xfs_linux.h:#define btoc(x)
>> (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
>> ./linux-2.6/xfs_buf.c: page_count = xfs_buf_btoc(end) -
>> xfs_buf_btoct(bp->b_file_offset);
>> ./linux-2.6/xfs_buf.c: page = bp->b_pages[xfs_buf_btoct(boff +
>> bp->b_offset)];
>> ./linux-2.6/xfs_buf.h:#define xfs_buf_btoc(dd) (((dd) +
>> PAGE_CACHE_SIZE-1) >> PAGE_CACHE_SHIFT)
>> ./linux-2.6/xfs_buf.h:#define xfs_buf_btoct(dd) ((dd) >> PAGE_CACHE_SHIFT)
>>
>> --Tim
>>
>>> -Eric
>>>
>>>> fs/xfs/linux-2.6/xfs_linux.h | 4 ----
>>>> 1 file changed, 4 deletions(-)
>>>>
>>>> --- a/fs/xfs/linux-2.6/xfs_linux.h 2007-11-07 11:26:20.000000000
>>>> +0100
>>>> +++ b/fs/xfs/linux-2.6/xfs_linux.h 2007-11-11 13:07:11.000000000
>>>> +0100
>>>> @@ -167,12 +167,8 @@
>>>>
>>>> /* clicks to bytes */
>>>> #define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
>>>> -#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
>>>> #define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
>>>>
>>>> -/* bytes to clicks */
>>>> -#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
>>>> -
>>>> #define ENOATTR ENODATA /* Attribute not found */
>>>> #define EWRONGFS EINVAL /* Mount with wrong filesystem
>>>> type */
>>>> #define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
>>>>
>>>>
> So I'm thinking of "seeing" your patch and raising you by my attached patch :-)
>
> --Tim
>
>
> -- Binary/unsupported file stripped by Ecartis --
> -- Type: text/x-patch
> -- File: btoc.patch
>
>
>
Where the attachment was supposed to look like...
=====================================Index: fs/xfs/linux-2.6/xfs_linux.h
=====================================
--- a/fs/xfs/linux-2.6/xfs_linux.h 2007-11-12 11:24:05.000000000 +1100
+++ b/fs/xfs/linux-2.6/xfs_linux.h 2007-11-12 11:14:22.818831666 +1100
@@ -159,12 +159,6 @@
/* number of BB's per block device block */
#define BLKDEV_BB BTOBB(BLKDEV_IOSIZE)
-/* bytes to clicks */
-#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
-#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
-#define btoc64(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
-#define btoct64(x) ((__uint64_t)(x)>>BPCSHIFT)
-
/* off_t bytes to clicks */
#define offtoc(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
#define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
@@ -172,14 +166,6 @@
/* clicks to off_t bytes */
#define ctooff(x) ((xfs_off_t)(x)<<BPCSHIFT)
-/* clicks to bytes */
-#define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
-#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
-#define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
-
-/* bytes to clicks */
-#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
-
#define ENOATTR ENODATA /* Attribute not found */
#define EWRONGFS EINVAL /* Mount with wrong filesystem type */
#define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [xfs-masters] Re: [PATCH] fs/xfs: remove duplicated defines
2007-11-11 12:43 [PATCH] fs/xfs: remove duplicated defines Nicolas Kaiser
` (2 preceding siblings ...)
2007-11-12 0:33 ` [xfs-masters] " Timothy Shimmin
@ 2007-11-12 2:04 ` David Chinner
2007-11-13 5:35 ` Timothy Shimmin
` (5 subsequent siblings)
9 siblings, 0 replies; 17+ messages in thread
From: David Chinner @ 2007-11-12 2:04 UTC (permalink / raw)
To: kernel-janitors
On Mon, Nov 12, 2007 at 11:33:30AM +1100, Timothy Shimmin wrote:
> Where the attachment was supposed to look like...
>
> =====================================> Index: fs/xfs/linux-2.6/xfs_linux.h
> =====================================>
> --- a/fs/xfs/linux-2.6/xfs_linux.h 2007-11-12 11:24:05.000000000 +1100
> +++ b/fs/xfs/linux-2.6/xfs_linux.h 2007-11-12 11:14:22.818831666 +1100
> @@ -159,12 +159,6 @@
> /* number of BB's per block device block */
> #define BLKDEV_BB BTOBB(BLKDEV_IOSIZE)
>
> -/* bytes to clicks */
> -#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
> -#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
> -#define btoc64(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
> -#define btoct64(x) ((__uint64_t)(x)>>BPCSHIFT)
> -
> /* off_t bytes to clicks */
> #define offtoc(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
> #define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
> @@ -172,14 +166,6 @@
> /* clicks to off_t bytes */
> #define ctooff(x) ((xfs_off_t)(x)<<BPCSHIFT)
>
> -/* clicks to bytes */
> -#define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
> -#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
> -#define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
> -
> -/* bytes to clicks */
> -#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
> -
> #define ENOATTR ENODATA /* Attribute not found */
> #define EWRONGFS EINVAL /* Mount with wrong filesystem type */
> #define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
Perhaps we should look at cleaning up the cusers of offtoc, offtoct, etc
and killing BPCSHIFT altogether....
Cheers,
Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [xfs-masters] Re: [PATCH] fs/xfs: remove duplicated defines
2007-11-11 12:43 [PATCH] fs/xfs: remove duplicated defines Nicolas Kaiser
` (3 preceding siblings ...)
2007-11-12 2:04 ` David Chinner
@ 2007-11-13 5:35 ` Timothy Shimmin
2007-11-13 21:30 ` David Chinner
` (4 subsequent siblings)
9 siblings, 0 replies; 17+ messages in thread
From: Timothy Shimmin @ 2007-11-13 5:35 UTC (permalink / raw)
To: kernel-janitors
David Chinner wrote:
> On Mon, Nov 12, 2007 at 11:33:30AM +1100, Timothy Shimmin wrote:
>> Where the attachment was supposed to look like...
>>
>> =====================================>> Index: fs/xfs/linux-2.6/xfs_linux.h
>> =====================================>>
>> --- a/fs/xfs/linux-2.6/xfs_linux.h 2007-11-12 11:24:05.000000000 +1100
>> +++ b/fs/xfs/linux-2.6/xfs_linux.h 2007-11-12 11:14:22.818831666 +1100
>> @@ -159,12 +159,6 @@
>> /* number of BB's per block device block */
>> #define BLKDEV_BB BTOBB(BLKDEV_IOSIZE)
>>
>> -/* bytes to clicks */
>> -#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
>> -#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
>> -#define btoc64(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
>> -#define btoct64(x) ((__uint64_t)(x)>>BPCSHIFT)
>> -
>> /* off_t bytes to clicks */
>> #define offtoc(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
>> #define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
>> @@ -172,14 +166,6 @@
>> /* clicks to off_t bytes */
>> #define ctooff(x) ((xfs_off_t)(x)<<BPCSHIFT)
>>
>> -/* clicks to bytes */
>> -#define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
>> -#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
>> -#define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
>> -
>> -/* bytes to clicks */
>> -#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
>> -
>> #define ENOATTR ENODATA /* Attribute not found */
>> #define EWRONGFS EINVAL /* Mount with wrong filesystem type */
>> #define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
>
> Perhaps we should look at cleaning up the cusers of offtoc, offtoct, etc
> and killing BPCSHIFT altogether....
>
Yeah, I had a quick look before, but I will look closer again ;-)
> egrep -Ir 'offtoc|ctoooff' . | egrep -v "anot|tag"
./linux-2.6/xfs_lrw.c: ctooff(offtoct(*offset)),
./linux-2.6/xfs_lrw.c: ctooff(offtoct(pos)), -1);
./linux-2.6/xfs_lrw.c: ctooff(offtoct(pos)),
./linux-2.6/xfs_linux.h:#define offtoc(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
./linux-2.6/xfs_linux.h:#define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
./xfs_vnodeops.c: ctooff(offtoct(ioffset)), -1);
./xfs_vnodeops.c: ctooff(offtoct(ioffset)),
So we basically just use:
ctooff(offtoct(pos))
where
#define ctooff(x) ((xfs_off_t)(x)<<BPCSHIFT)
#define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
#define BPCSHIFT PAGE_SHIFT /* LOG2(NBPC) if exact */
seems basically to be a:
#define round_down_page(x) ((x) & ~(PAGE_SIZE - 1))
or just use a
round_down(x, PAGE_SIZE)
and
define the round_down for size which is power of 2.
Like in asm-x86_64/proto.h
#define round_up(x,y) (((x) + (y) - 1) & ~((y)-1))
#define round_down(x,y) ((x) & ~((y)-1))
What way do you reckon?
--Tim
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [xfs-masters] Re: [PATCH] fs/xfs: remove duplicated defines
2007-11-11 12:43 [PATCH] fs/xfs: remove duplicated defines Nicolas Kaiser
` (4 preceding siblings ...)
2007-11-13 5:35 ` Timothy Shimmin
@ 2007-11-13 21:30 ` David Chinner
2007-11-14 2:46 ` Timothy Shimmin
` (3 subsequent siblings)
9 siblings, 0 replies; 17+ messages in thread
From: David Chinner @ 2007-11-13 21:30 UTC (permalink / raw)
To: kernel-janitors
On Tue, Nov 13, 2007 at 04:35:40PM +1100, Timothy Shimmin wrote:
> David Chinner wrote:
> > Perhaps we should look at cleaning up the cusers of offtoc, offtoct, etc
> > and killing BPCSHIFT altogether....
> >
> Yeah, I had a quick look before, but I will look closer again ;-)
>
> > egrep -Ir 'offtoc|ctoooff' . | egrep -v "anot|tag"
> ./linux-2.6/xfs_lrw.c: ctooff(offtoct(*offset)),
> ./linux-2.6/xfs_lrw.c: ctooff(offtoct(pos)), -1);
> ./linux-2.6/xfs_lrw.c: ctooff(offtoct(pos)),
> ./linux-2.6/xfs_linux.h:#define offtoc(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
> ./linux-2.6/xfs_linux.h:#define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
> ./xfs_vnodeops.c: ctooff(offtoct(ioffset)), -1);
> ./xfs_vnodeops.c: ctooff(offtoct(ioffset)),
>
> So we basically just use:
>
> ctooff(offtoct(pos))
>
> where
> #define ctooff(x) ((xfs_off_t)(x)<<BPCSHIFT)
> #define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
> #define BPCSHIFT PAGE_SHIFT /* LOG2(NBPC) if exact */
>
> seems basically to be a:
>
> #define round_down_page(x) ((x) & ~(PAGE_SIZE - 1))
>
> or just use a
> round_down(x, PAGE_SIZE)
> and
> define the round_down for size which is power of 2.
>
> Like in asm-x86_64/proto.h
> #define round_up(x,y) (((x) + (y) - 1) & ~((y)-1))
> #define round_down(x,y) ((x) & ~((y)-1))
>
> What way do you reckon?
Neither ;)
Just replace them with (val & PAGE_CACHE_MASK)
Actually, the code in xfs_vnodeops.c culd probably just be removed; the
ioffset variable is already rounded to a multiple of page size....
Cheers,
dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [xfs-masters] Re: [PATCH] fs/xfs: remove duplicated defines
2007-11-11 12:43 [PATCH] fs/xfs: remove duplicated defines Nicolas Kaiser
` (5 preceding siblings ...)
2007-11-13 21:30 ` David Chinner
@ 2007-11-14 2:46 ` Timothy Shimmin
2007-11-14 5:41 ` David Chinner
` (2 subsequent siblings)
9 siblings, 0 replies; 17+ messages in thread
From: Timothy Shimmin @ 2007-11-14 2:46 UTC (permalink / raw)
To: kernel-janitors
David Chinner wrote:
> On Tue, Nov 13, 2007 at 04:35:40PM +1100, Timothy Shimmin wrote:
>> David Chinner wrote:
>>> Perhaps we should look at cleaning up the cusers of offtoc, offtoct, etc
>>> and killing BPCSHIFT altogether....
>>>
>> Yeah, I had a quick look before, but I will look closer again ;-)
>>
>> > egrep -Ir 'offtoc|ctoooff' . | egrep -v "anot|tag"
>> ./linux-2.6/xfs_lrw.c: ctooff(offtoct(*offset)),
>> ./linux-2.6/xfs_lrw.c: ctooff(offtoct(pos)), -1);
>> ./linux-2.6/xfs_lrw.c: ctooff(offtoct(pos)),
>> ./linux-2.6/xfs_linux.h:#define offtoc(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
>> ./linux-2.6/xfs_linux.h:#define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
>> ./xfs_vnodeops.c: ctooff(offtoct(ioffset)), -1);
>> ./xfs_vnodeops.c: ctooff(offtoct(ioffset)),
>>
>> So we basically just use:
>>
>> ctooff(offtoct(pos))
>>
>> where
>> #define ctooff(x) ((xfs_off_t)(x)<<BPCSHIFT)
>> #define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
>> #define BPCSHIFT PAGE_SHIFT /* LOG2(NBPC) if exact */
>>
>> seems basically to be a:
>>
>> #define round_down_page(x) ((x) & ~(PAGE_SIZE - 1))
>>
>> or just use a
>> round_down(x, PAGE_SIZE)
>> and
>> define the round_down for size which is power of 2.
>>
>> Like in asm-x86_64/proto.h
>> #define round_up(x,y) (((x) + (y) - 1) & ~((y)-1))
>> #define round_down(x,y) ((x) & ~((y)-1))
>>
>> What way do you reckon?
>
> Neither ;)
:)
>
> Just replace them with (val & PAGE_CACHE_MASK)
>
Ah, there is already a macro for ~(PAGE_SIZE - 1) that would
be good. (You can tell I look at a lot of this page code:)
> Actually, the code in xfs_vnodeops.c culd probably just be removed; the
> ioffset variable is already rounded to a multiple of page size....
>
Yep...
rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, NBPP);
ioffset = offset & ~(rounding - 1);
Looks like we used to use ioffset directly in a call to xfs_inval_cached_pages()
and when hch moved to VOP_FLUSH_INVALPAGES we used the ctoff(offtoct(...
> Cheers,
>
> dave.
Remove the BPCSHIFT based macros from XFS.
The BPCSHIFT based macros, btoc*, ctob*, offtoc* and ctooff
are either not used or don't need to be used.
Initial patch and motivation from Nicolas Kaiser.
Signed-Off-By: Tim Shimmin <tes@sgi.com>
---
b/fs/xfs/linux-2.6/xfs_linux.h | 21 ---------------------
b/fs/xfs/linux-2.6/xfs_lrw.c | 9 ++++-----
b/fs/xfs/xfs_vnodeops.c | 7 ++-----
3 files changed, 6 insertions(+), 31 deletions(-)
=====================================Index: fs/xfs/linux-2.6/xfs_linux.h
=====================================
--- a/fs/xfs/linux-2.6/xfs_linux.h 2007-11-14 13:02:46.000000000 +1100
+++ b/fs/xfs/linux-2.6/xfs_linux.h 2007-11-14 12:40:25.297746498 +1100
@@ -159,27 +159,6 @@
/* number of BB's per block device block */
#define BLKDEV_BB BTOBB(BLKDEV_IOSIZE)
-/* bytes to clicks */
-#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
-#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
-#define btoc64(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
-#define btoct64(x) ((__uint64_t)(x)>>BPCSHIFT)
-
-/* off_t bytes to clicks */
-#define offtoc(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
-#define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
-
-/* clicks to off_t bytes */
-#define ctooff(x) ((xfs_off_t)(x)<<BPCSHIFT)
-
-/* clicks to bytes */
-#define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
-#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
-#define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
-
-/* bytes to clicks */
-#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
-
#define ENOATTR ENODATA /* Attribute not found */
#define EWRONGFS EINVAL /* Mount with wrong filesystem type */
#define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
=====================================Index: fs/xfs/linux-2.6/xfs_lrw.c
=====================================
--- a/fs/xfs/linux-2.6/xfs_lrw.c 2007-11-14 13:02:46.000000000 +1100
+++ b/fs/xfs/linux-2.6/xfs_lrw.c 2007-11-14 12:36:59.920080014 +1100
@@ -254,9 +254,8 @@ xfs_read(
if (unlikely(ioflags & IO_ISDIRECT)) {
if (VN_CACHED(vp))
- ret = xfs_flushinval_pages(ip,
- ctooff(offtoct(*offset)),
- -1, FI_REMAPF_LOCKED);
+ ret = xfs_flushinval_pages(ip, (*offset & PAGE_MASK),
+ -1, FI_REMAPF_LOCKED);
mutex_unlock(&inode->i_mutex);
if (ret) {
xfs_iunlock(ip, XFS_IOLOCK_SHARED);
@@ -742,9 +741,9 @@ retry:
if (VN_CACHED(vp)) {
WARN_ON(need_i_mutex = 0);
xfs_inval_cached_trace(xip, pos, -1,
- ctooff(offtoct(pos)), -1);
+ (pos & PAGE_MASK), -1);
error = xfs_flushinval_pages(xip,
- ctooff(offtoct(pos)),
+ (pos & PAGE_MASK),
-1, FI_REMAPF_LOCKED);
if (error)
goto out_unlock_internal;
=====================================Index: fs/xfs/xfs_vnodeops.c
=====================================
--- a/fs/xfs/xfs_vnodeops.c 2007-11-14 13:02:46.000000000 +1100
+++ b/fs/xfs/xfs_vnodeops.c 2007-11-14 12:32:36.182055952 +1100
@@ -4168,11 +4168,8 @@ xfs_free_file_space(
ioffset = offset & ~(rounding - 1);
if (VN_CACHED(vp) != 0) {
- xfs_inval_cached_trace(ip, ioffset, -1,
- ctooff(offtoct(ioffset)), -1);
- error = xfs_flushinval_pages(ip,
- ctooff(offtoct(ioffset)),
- -1, FI_REMAPF_LOCKED);
+ xfs_inval_cached_trace(ip, ioffset, -1, ioffset, -1);
+ error = xfs_flushinval_pages(ip, ioffset, -1, FI_REMAPF_LOCKED);
if (error)
goto out_unlock_iolock;
}
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [xfs-masters] Re: [PATCH] fs/xfs: remove duplicated defines
2007-11-11 12:43 [PATCH] fs/xfs: remove duplicated defines Nicolas Kaiser
` (6 preceding siblings ...)
2007-11-14 2:46 ` Timothy Shimmin
@ 2007-11-14 5:41 ` David Chinner
2007-11-15 0:54 ` Timothy Shimmin
2007-11-15 6:27 ` David Chinner
9 siblings, 0 replies; 17+ messages in thread
From: David Chinner @ 2007-11-14 5:41 UTC (permalink / raw)
To: kernel-janitors
On Wed, Nov 14, 2007 at 01:46:52PM +1100, Timothy Shimmin wrote:
> David Chinner wrote:
> > Just replace them with (val & PAGE_CACHE_MASK)
^^^^^^^^^^^^^^^
......
> --- a/fs/xfs/linux-2.6/xfs_lrw.c 2007-11-14 13:02:46.000000000 +1100
> +++ b/fs/xfs/linux-2.6/xfs_lrw.c 2007-11-14 12:36:59.920080014 +1100
> @@ -254,9 +254,8 @@ xfs_read(
>
> if (unlikely(ioflags & IO_ISDIRECT)) {
> if (VN_CACHED(vp))
> - ret = xfs_flushinval_pages(ip,
> - ctooff(offtoct(*offset)),
> - -1, FI_REMAPF_LOCKED);
> + ret = xfs_flushinval_pages(ip, (*offset & PAGE_MASK),
^^^^^^^^^
s/PAGE_MASK/PAGE_CACHE_MASK/g
Cheers,
Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [xfs-masters] Re: [PATCH] fs/xfs: remove duplicated defines
2007-11-11 12:43 [PATCH] fs/xfs: remove duplicated defines Nicolas Kaiser
` (7 preceding siblings ...)
2007-11-14 5:41 ` David Chinner
@ 2007-11-15 0:54 ` Timothy Shimmin
2007-11-15 6:27 ` David Chinner
9 siblings, 0 replies; 17+ messages in thread
From: Timothy Shimmin @ 2007-11-15 0:54 UTC (permalink / raw)
To: kernel-janitors
David Chinner wrote:
> On Wed, Nov 14, 2007 at 01:46:52PM +1100, Timothy Shimmin wrote:
>> David Chinner wrote:
>>> Just replace them with (val & PAGE_CACHE_MASK)
> ^^^^^^^^^^^^^^^
> ......
>> --- a/fs/xfs/linux-2.6/xfs_lrw.c 2007-11-14 13:02:46.000000000 +1100
>> +++ b/fs/xfs/linux-2.6/xfs_lrw.c 2007-11-14 12:36:59.920080014 +1100
>> @@ -254,9 +254,8 @@ xfs_read(
>>
>> if (unlikely(ioflags & IO_ISDIRECT)) {
>> if (VN_CACHED(vp))
>> - ret = xfs_flushinval_pages(ip,
>> - ctooff(offtoct(*offset)),
>> - -1, FI_REMAPF_LOCKED);
>> + ret = xfs_flushinval_pages(ip, (*offset & PAGE_MASK),
> ^^^^^^^^^
>
> s/PAGE_MASK/PAGE_CACHE_MASK/g
>
Okay.
While here, looking at a few others...
I'll get rid of BPCSHIFT.
And then...
#define NBPP PAGE_SIZE
#define NDPP (1 << (PAGE_SHIFT - 9)) <--- not used - another to nuke
#define NBPC PAGE_SIZE <----- used once
grep -Ir 'NBPC' . | egrep -v 'tag|anot|diff'
./linux-2.6/xfs_linux.h:#define NBPC PAGE_SIZE /* Number of bytes per click */
./xfs_itable.c: irbuf = kmem_zalloc_greedy(&irbsize, NBPC, NBPC * 4,
> grep -Ir 'NBPP' . | egrep -v 'tag|anot|diff|NBPPR'
./linux-2.6/xfs_linux.h:#define NBPP PAGE_SIZE
./quota/xfs_qm.h:#define XFS_QM_HASHSIZE_LOW (NBPP / sizeof(xfs_dqhash_t))
./quota/xfs_qm.h:#define XFS_QM_HASHSIZE_HIGH ((NBPP * 4) / sizeof(xfs_dqhash_t))
./xfs_bmap.c: } else if (mp->m_sb.sb_blocksize >= NBPP) {
./xfs_bmap.c: args.prod = NBPP >> mp->m_sb.sb_blocklog;
./xfs_itable.c: bcount = MIN(left, (int)(NBPP / sizeof(*buffer)));
./xfs_log.c: kmem_free(tic, NBPP);
./xfs_log.c: uint i = (NBPP / sizeof(xlog_ticket_t)) - 2;
./xfs_log.c: buf = (xfs_caddr_t) kmem_zalloc(NBPP, KM_SLEEP);
./xfs_vnodeops.c: rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, NBPP);
Might as well get rid of NBPC and replace by NBPP.
Is it just worth s/NBPC/PAGE_SIZE/g ?
Okay, the xfs_vnodeops.c one should be PAGE_CACHE_SIZE, then right?
How about the bmap ones?
I don't know if I want to keep asking questions ... ;-)
--Tim
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [xfs-masters] Re: [PATCH] fs/xfs: remove duplicated defines
2007-11-11 12:43 [PATCH] fs/xfs: remove duplicated defines Nicolas Kaiser
` (8 preceding siblings ...)
2007-11-15 0:54 ` Timothy Shimmin
@ 2007-11-15 6:27 ` David Chinner
2007-11-16 5:34 ` [PATCH] remove BPCSHIFT and NB?P? macros - was fs/xfs: remove duplicated Timothy Shimmin
9 siblings, 1 reply; 17+ messages in thread
From: David Chinner @ 2007-11-15 6:27 UTC (permalink / raw)
To: kernel-janitors
On Thu, Nov 15, 2007 at 11:54:04AM +1100, Timothy Shimmin wrote:
> David Chinner wrote:
> > On Wed, Nov 14, 2007 at 01:46:52PM +1100, Timothy Shimmin wrote:
> >> David Chinner wrote:
> >>> Just replace them with (val & PAGE_CACHE_MASK)
> > ^^^^^^^^^^^^^^^
> > ......
> >> --- a/fs/xfs/linux-2.6/xfs_lrw.c 2007-11-14 13:02:46.000000000 +1100
> >> +++ b/fs/xfs/linux-2.6/xfs_lrw.c 2007-11-14 12:36:59.920080014 +1100
> >> @@ -254,9 +254,8 @@ xfs_read(
> >>
> >> if (unlikely(ioflags & IO_ISDIRECT)) {
> >> if (VN_CACHED(vp))
> >> - ret = xfs_flushinval_pages(ip,
> >> - ctooff(offtoct(*offset)),
> >> - -1, FI_REMAPF_LOCKED);
> >> + ret = xfs_flushinval_pages(ip, (*offset & PAGE_MASK),
> > ^^^^^^^^^
> >
> > s/PAGE_MASK/PAGE_CACHE_MASK/g
> >
>
> Okay.
>
> While here, looking at a few others...
>
> I'll get rid of BPCSHIFT.
>
> And then...
>
> #define NBPP PAGE_SIZE
> #define NDPP (1 << (PAGE_SHIFT - 9)) <--- not used - another to nuke
> #define NBPC PAGE_SIZE <----- used once
>
> grep -Ir 'NBPC' . | egrep -v 'tag|anot|diff'
> ./linux-2.6/xfs_linux.h:#define NBPC PAGE_SIZE /* Number of bytes per click */
> ./xfs_itable.c: irbuf = kmem_zalloc_greedy(&irbsize, NBPC, NBPC * 4,
>
> > grep -Ir 'NBPP' . | egrep -v 'tag|anot|diff|NBPPR'
> ./linux-2.6/xfs_linux.h:#define NBPP PAGE_SIZE
> ./quota/xfs_qm.h:#define XFS_QM_HASHSIZE_LOW (NBPP / sizeof(xfs_dqhash_t))
> ./quota/xfs_qm.h:#define XFS_QM_HASHSIZE_HIGH ((NBPP * 4) / sizeof(xfs_dqhash_t))
PAGE_SIZE
> ./xfs_bmap.c: } else if (mp->m_sb.sb_blocksize >= NBPP) {
> ./xfs_bmap.c: args.prod = NBPP >> mp->m_sb.sb_blocklog;
PAGE_CACHE_SIZE
> ./xfs_itable.c: bcount = MIN(left, (int)(NBPP / sizeof(*buffer)));
PAGE_SIZE
> ./xfs_log.c: kmem_free(tic, NBPP);
> ./xfs_log.c: uint i = (NBPP / sizeof(xlog_ticket_t)) - 2;
> ./xfs_log.c: buf = (xfs_caddr_t) kmem_zalloc(NBPP, KM_SLEEP);
We should replace that hand rolled ticket allocator with a slab cache.
> ./xfs_vnodeops.c: rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, NBPP);
PAGE_CACHE_SIZE. (as suggested ;)
> Might as well get rid of NBPC and replace by NBPP.
>
> Is it just worth s/NBPC/PAGE_SIZE/g ?
yup.
Cheers,
Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH] remove BPCSHIFT and NB?P? macros - was fs/xfs: remove duplicated
@ 2007-11-16 5:34 ` Timothy Shimmin
2007-11-16 6:15 ` [xfs-masters] [PATCH] remove BPCSHIFT and NB?P? macros - was fs/xfs: remove duplicated defines Lachlan McIlroy
0 siblings, 1 reply; 17+ messages in thread
From: Timothy Shimmin @ 2007-11-16 5:34 UTC (permalink / raw)
To: kernel-janitors
David Chinner wrote:
>> While here, looking at a few others...
>> #define NBPP PAGE_SIZE
>> #define NDPP (1 << (PAGE_SHIFT - 9)) <--- not used - another to nuke
>> #define NBPC PAGE_SIZE <----- used once
>>
>> grep -Ir 'NBPC' . | egrep -v 'tag|anot|diff'
>> ./linux-2.6/xfs_linux.h:#define NBPC PAGE_SIZE /* Number of bytes per click */
>> ./xfs_itable.c: irbuf = kmem_zalloc_greedy(&irbsize, NBPC, NBPC * 4,
>>
>> > grep -Ir 'NBPP' . | egrep -v 'tag|anot|diff|NBPPR'
>> ./linux-2.6/xfs_linux.h:#define NBPP PAGE_SIZE
>> ./quota/xfs_qm.h:#define XFS_QM_HASHSIZE_LOW (NBPP / sizeof(xfs_dqhash_t))
>> ./quota/xfs_qm.h:#define XFS_QM_HASHSIZE_HIGH ((NBPP * 4) / sizeof(xfs_dqhash_t))
>
> PAGE_SIZE
>
>> ./xfs_bmap.c: } else if (mp->m_sb.sb_blocksize >= NBPP) {
>> ./xfs_bmap.c: args.prod = NBPP >> mp->m_sb.sb_blocklog;
>
> PAGE_CACHE_SIZE
>
>> ./xfs_itable.c: bcount = MIN(left, (int)(NBPP / sizeof(*buffer)));
>
> PAGE_SIZE
>
>> ./xfs_log.c: kmem_free(tic, NBPP);
>> ./xfs_log.c: uint i = (NBPP / sizeof(xlog_ticket_t)) - 2;
>> ./xfs_log.c: buf = (xfs_caddr_t) kmem_zalloc(NBPP, KM_SLEEP);
>
> We should replace that hand rolled ticket allocator with a slab cache.
>
In another patch though.
>> ./xfs_vnodeops.c: rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, NBPP);
>
> PAGE_CACHE_SIZE. (as suggested ;)
>
>> Might as well get rid of NBPC and replace by NBPP.
>>
>> Is it just worth s/NBPC/PAGE_SIZE/g ?
>
> yup.
>
Thanks.
Patch:
-------------
Remove the BPCSHIFT and NB* based macros from XFS.
The BPCSHIFT based macros, btoc*, ctob*, offtoc* and ctooff
are either not used or don't need to be used.
The NDPP, NDPP, NBBY macros don't need to be used but instead
are replaced directly by PAGE_SIZE and PAGE_CACHE_SIZE
where appropriate.
Initial patch and motivation from Nicolas Kaiser.
Signed-Off-By: Tim Shimmin <tes@sgi.com>
---
b/fs/xfs/linux-2.6/xfs_linux.h | 28 +---------------------------
b/fs/xfs/linux-2.6/xfs_lrw.c | 9 ++++-----
b/fs/xfs/quota/xfs_qm.h | 4 ++--
b/fs/xfs/xfs_bmap.c | 4 ++--
b/fs/xfs/xfs_itable.c | 4 ++--
b/fs/xfs/xfs_log.c | 6 +++---
b/fs/xfs/xfs_vnodeops.c | 9 +++------
7 files changed, 17 insertions(+), 47 deletions(-)
=====================================Index: fs/xfs/linux-2.6/xfs_linux.h
=====================================
--- a/fs/xfs/linux-2.6/xfs_linux.h 2007-11-16 16:22:40.000000000 +1100
+++ b/fs/xfs/linux-2.6/xfs_linux.h 2007-11-16 15:59:22.299466117 +1100
@@ -143,43 +143,17 @@
#define spinlock_destroy(lock)
-#define NBPP PAGE_SIZE
-#define NDPP (1 << (PAGE_SHIFT - 9))
-
#define NBBY 8 /* number of bits per byte */
-#define NBPC PAGE_SIZE /* Number of bytes per click */
-#define BPCSHIFT PAGE_SHIFT /* LOG2(NBPC) if exact */
/*
* Size of block device i/o is parameterized here.
* Currently the system supports page-sized i/o.
*/
-#define BLKDEV_IOSHIFT BPCSHIFT
+#define BLKDEV_IOSHIFT PAGE_CACHE_SHIFT
#define BLKDEV_IOSIZE (1<<BLKDEV_IOSHIFT)
/* number of BB's per block device block */
#define BLKDEV_BB BTOBB(BLKDEV_IOSIZE)
-/* bytes to clicks */
-#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
-#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
-#define btoc64(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
-#define btoct64(x) ((__uint64_t)(x)>>BPCSHIFT)
-
-/* off_t bytes to clicks */
-#define offtoc(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
-#define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
-
-/* clicks to off_t bytes */
-#define ctooff(x) ((xfs_off_t)(x)<<BPCSHIFT)
-
-/* clicks to bytes */
-#define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
-#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
-#define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
-
-/* bytes to clicks */
-#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
-
#define ENOATTR ENODATA /* Attribute not found */
#define EWRONGFS EINVAL /* Mount with wrong filesystem type */
#define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
=====================================Index: fs/xfs/linux-2.6/xfs_lrw.c
=====================================
--- a/fs/xfs/linux-2.6/xfs_lrw.c 2007-11-16 16:22:40.000000000 +1100
+++ b/fs/xfs/linux-2.6/xfs_lrw.c 2007-11-15 11:32:12.451249159 +1100
@@ -254,9 +254,8 @@ xfs_read(
if (unlikely(ioflags & IO_ISDIRECT)) {
if (VN_CACHED(vp))
- ret = xfs_flushinval_pages(ip,
- ctooff(offtoct(*offset)),
- -1, FI_REMAPF_LOCKED);
+ ret = xfs_flushinval_pages(ip, (*offset & PAGE_CACHE_MASK),
+ -1, FI_REMAPF_LOCKED);
mutex_unlock(&inode->i_mutex);
if (ret) {
xfs_iunlock(ip, XFS_IOLOCK_SHARED);
@@ -742,9 +741,9 @@ retry:
if (VN_CACHED(vp)) {
WARN_ON(need_i_mutex = 0);
xfs_inval_cached_trace(xip, pos, -1,
- ctooff(offtoct(pos)), -1);
+ (pos & PAGE_CACHE_MASK), -1);
error = xfs_flushinval_pages(xip,
- ctooff(offtoct(pos)),
+ (pos & PAGE_CACHE_MASK),
-1, FI_REMAPF_LOCKED);
if (error)
goto out_unlock_internal;
=====================================Index: fs/xfs/quota/xfs_qm.h
=====================================
--- a/fs/xfs/quota/xfs_qm.h 2007-11-16 16:22:40.000000000 +1100
+++ b/fs/xfs/quota/xfs_qm.h 2007-11-16 15:39:53.373375739 +1100
@@ -52,8 +52,8 @@ extern kmem_zone_t *qm_dqtrxzone;
/*
* Dquot hashtable constants/threshold values.
*/
-#define XFS_QM_HASHSIZE_LOW (NBPP / sizeof(xfs_dqhash_t))
-#define XFS_QM_HASHSIZE_HIGH ((NBPP * 4) / sizeof(xfs_dqhash_t))
+#define XFS_QM_HASHSIZE_LOW (PAGE_SIZE / sizeof(xfs_dqhash_t))
+#define XFS_QM_HASHSIZE_HIGH ((PAGE_SIZE * 4) / sizeof(xfs_dqhash_t))
/*
* This defines the unit of allocation of dquots.
=====================================Index: fs/xfs/xfs_bmap.c
=====================================
--- a/fs/xfs/xfs_bmap.c 2007-11-16 16:22:41.000000000 +1100
+++ b/fs/xfs/xfs_bmap.c 2007-11-16 15:40:27.017050666 +1100
@@ -2830,11 +2830,11 @@ xfs_bmap_btalloc(
args.prod = align;
if ((args.mod = (xfs_extlen_t)do_mod(ap->off, args.prod)))
args.mod = (xfs_extlen_t)(args.prod - args.mod);
- } else if (mp->m_sb.sb_blocksize >= NBPP) {
+ } else if (mp->m_sb.sb_blocksize >= PAGE_CACHE_SIZE) {
args.prod = 1;
args.mod = 0;
} else {
- args.prod = NBPP >> mp->m_sb.sb_blocklog;
+ args.prod = PAGE_CACHE_SIZE >> mp->m_sb.sb_blocklog;
if ((args.mod = (xfs_extlen_t)(do_mod(ap->off, args.prod))))
args.mod = (xfs_extlen_t)(args.prod - args.mod);
}
=====================================Index: fs/xfs/xfs_itable.c
=====================================
--- a/fs/xfs/xfs_itable.c 2007-11-16 16:22:40.000000000 +1100
+++ b/fs/xfs/xfs_itable.c 2007-11-16 16:05:51.381600461 +1100
@@ -393,7 +393,7 @@ xfs_bulkstat(
(XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog);
nimask = ~(nicluster - 1);
nbcluster = nicluster >> mp->m_sb.sb_inopblog;
- irbuf = kmem_zalloc_greedy(&irbsize, NBPC, NBPC * 4,
+ irbuf = kmem_zalloc_greedy(&irbsize, PAGE_SIZE, PAGE_SIZE * 4,
KM_SLEEP | KM_MAYFAIL | KM_LARGE);
nirbuf = irbsize / sizeof(*irbuf);
@@ -815,7 +815,7 @@ xfs_inumbers(
agino = XFS_INO_TO_AGINO(mp, ino);
left = *count;
*count = 0;
- bcount = MIN(left, (int)(NBPP / sizeof(*buffer)));
+ bcount = MIN(left, (int)(PAGE_SIZE / sizeof(*buffer)));
buffer = kmem_alloc(bcount * sizeof(*buffer), KM_SLEEP);
error = bufidx = 0;
cur = NULL;
=====================================Index: fs/xfs/xfs_log.c
=====================================
--- a/fs/xfs/xfs_log.c 2007-11-16 16:22:40.000000000 +1100
+++ b/fs/xfs/xfs_log.c 2007-11-16 15:56:42.615917720 +1100
@@ -1552,7 +1552,7 @@ xlog_dealloc_log(xlog_t *log)
tic = log->l_unmount_free;
while (tic) {
next_tic = tic->t_next;
- kmem_free(tic, NBPP);
+ kmem_free(tic, PAGE_SIZE);
tic = next_tic;
}
}
@@ -3161,13 +3161,13 @@ xlog_state_ticket_alloc(xlog_t *log)
xlog_ticket_t *t_list;
xlog_ticket_t *next;
xfs_caddr_t buf;
- uint i = (NBPP / sizeof(xlog_ticket_t)) - 2;
+ uint i = (PAGE_SIZE / sizeof(xlog_ticket_t)) - 2;
/*
* The kmem_zalloc may sleep, so we shouldn't be holding the
* global lock. XXXmiken: may want to use zone allocator.
*/
- buf = (xfs_caddr_t) kmem_zalloc(NBPP, KM_SLEEP);
+ buf = (xfs_caddr_t) kmem_zalloc(PAGE_SIZE, KM_SLEEP);
spin_lock(&log->l_icloglock);
=====================================Index: fs/xfs/xfs_vnodeops.c
=====================================
--- a/fs/xfs/xfs_vnodeops.c 2007-11-16 16:22:41.000000000 +1100
+++ b/fs/xfs/xfs_vnodeops.c 2007-11-16 15:57:01.449505791 +1100
@@ -4164,15 +4164,12 @@ xfs_free_file_space(
vn_iowait(ip); /* wait for the completion of any pending DIOs */
}
- rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, NBPP);
+ rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, PAGE_CACHE_SIZE);
ioffset = offset & ~(rounding - 1);
if (VN_CACHED(vp) != 0) {
- xfs_inval_cached_trace(ip, ioffset, -1,
- ctooff(offtoct(ioffset)), -1);
- error = xfs_flushinval_pages(ip,
- ctooff(offtoct(ioffset)),
- -1, FI_REMAPF_LOCKED);
+ xfs_inval_cached_trace(ip, ioffset, -1, ioffset, -1);
+ error = xfs_flushinval_pages(ip, ioffset, -1, FI_REMAPF_LOCKED);
if (error)
goto out_unlock_iolock;
}
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [xfs-masters] [PATCH] remove BPCSHIFT and NB?P? macros - was
2007-11-16 5:34 ` [PATCH] remove BPCSHIFT and NB?P? macros - was fs/xfs: remove duplicated Timothy Shimmin
@ 2007-11-16 6:15 ` Lachlan McIlroy
0 siblings, 0 replies; 17+ messages in thread
From: Lachlan McIlroy @ 2007-11-16 6:15 UTC (permalink / raw)
To: xfs-masters; +Cc: Eric Sandeen, xfs, kernel-janitors
Looks good Tim. Nice work.
Timothy Shimmin wrote:
> David Chinner wrote:
>>> While here, looking at a few others...
>>> #define NBPP PAGE_SIZE
>>> #define NDPP (1 << (PAGE_SHIFT - 9)) <--- not used - another to nuke
>>> #define NBPC PAGE_SIZE <----- used once
>>>
>>> grep -Ir 'NBPC' . | egrep -v 'tag|anot|diff'
>>> ./linux-2.6/xfs_linux.h:#define NBPC PAGE_SIZE /* Number of bytes per click */
>>> ./xfs_itable.c: irbuf = kmem_zalloc_greedy(&irbsize, NBPC, NBPC * 4,
>>>
>>> > grep -Ir 'NBPP' . | egrep -v 'tag|anot|diff|NBPPR'
>>> ./linux-2.6/xfs_linux.h:#define NBPP PAGE_SIZE
>>> ./quota/xfs_qm.h:#define XFS_QM_HASHSIZE_LOW (NBPP / sizeof(xfs_dqhash_t))
>>> ./quota/xfs_qm.h:#define XFS_QM_HASHSIZE_HIGH ((NBPP * 4) / sizeof(xfs_dqhash_t))
>> PAGE_SIZE
>>
>>> ./xfs_bmap.c: } else if (mp->m_sb.sb_blocksize >= NBPP) {
>>> ./xfs_bmap.c: args.prod = NBPP >> mp->m_sb.sb_blocklog;
>> PAGE_CACHE_SIZE
>>
>>> ./xfs_itable.c: bcount = MIN(left, (int)(NBPP / sizeof(*buffer)));
>> PAGE_SIZE
>>
>>> ./xfs_log.c: kmem_free(tic, NBPP);
>>> ./xfs_log.c: uint i = (NBPP / sizeof(xlog_ticket_t)) - 2;
>>> ./xfs_log.c: buf = (xfs_caddr_t) kmem_zalloc(NBPP, KM_SLEEP);
>> We should replace that hand rolled ticket allocator with a slab cache.
>>
> In another patch though.
>
>>> ./xfs_vnodeops.c: rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, NBPP);
>> PAGE_CACHE_SIZE. (as suggested ;)
>>
>>> Might as well get rid of NBPC and replace by NBPP.
>>>
>>> Is it just worth s/NBPC/PAGE_SIZE/g ?
>> yup.
>>
> Thanks.
>
> Patch:
> -------------
>
> Remove the BPCSHIFT and NB* based macros from XFS.
>
> The BPCSHIFT based macros, btoc*, ctob*, offtoc* and ctooff
> are either not used or don't need to be used.
> The NDPP, NDPP, NBBY macros don't need to be used but instead
> are replaced directly by PAGE_SIZE and PAGE_CACHE_SIZE
> where appropriate.
> Initial patch and motivation from Nicolas Kaiser.
>
> Signed-Off-By: Tim Shimmin <tes@sgi.com>
> ---
> b/fs/xfs/linux-2.6/xfs_linux.h | 28 +---------------------------
> b/fs/xfs/linux-2.6/xfs_lrw.c | 9 ++++-----
> b/fs/xfs/quota/xfs_qm.h | 4 ++--
> b/fs/xfs/xfs_bmap.c | 4 ++--
> b/fs/xfs/xfs_itable.c | 4 ++--
> b/fs/xfs/xfs_log.c | 6 +++---
> b/fs/xfs/xfs_vnodeops.c | 9 +++------
> 7 files changed, 17 insertions(+), 47 deletions(-)
>
> =====================================> Index: fs/xfs/linux-2.6/xfs_linux.h
> =====================================>
> --- a/fs/xfs/linux-2.6/xfs_linux.h 2007-11-16 16:22:40.000000000 +1100
> +++ b/fs/xfs/linux-2.6/xfs_linux.h 2007-11-16 15:59:22.299466117 +1100
> @@ -143,43 +143,17 @@
>
> #define spinlock_destroy(lock)
>
> -#define NBPP PAGE_SIZE
> -#define NDPP (1 << (PAGE_SHIFT - 9))
> -
> #define NBBY 8 /* number of bits per byte */
> -#define NBPC PAGE_SIZE /* Number of bytes per click */
> -#define BPCSHIFT PAGE_SHIFT /* LOG2(NBPC) if exact */
>
> /*
> * Size of block device i/o is parameterized here.
> * Currently the system supports page-sized i/o.
> */
> -#define BLKDEV_IOSHIFT BPCSHIFT
> +#define BLKDEV_IOSHIFT PAGE_CACHE_SHIFT
> #define BLKDEV_IOSIZE (1<<BLKDEV_IOSHIFT)
> /* number of BB's per block device block */
> #define BLKDEV_BB BTOBB(BLKDEV_IOSIZE)
>
> -/* bytes to clicks */
> -#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
> -#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
> -#define btoc64(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
> -#define btoct64(x) ((__uint64_t)(x)>>BPCSHIFT)
> -
> -/* off_t bytes to clicks */
> -#define offtoc(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
> -#define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
> -
> -/* clicks to off_t bytes */
> -#define ctooff(x) ((xfs_off_t)(x)<<BPCSHIFT)
> -
> -/* clicks to bytes */
> -#define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
> -#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
> -#define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
> -
> -/* bytes to clicks */
> -#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
> -
> #define ENOATTR ENODATA /* Attribute not found */
> #define EWRONGFS EINVAL /* Mount with wrong filesystem type */
> #define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
>
> =====================================> Index: fs/xfs/linux-2.6/xfs_lrw.c
> =====================================>
> --- a/fs/xfs/linux-2.6/xfs_lrw.c 2007-11-16 16:22:40.000000000 +1100
> +++ b/fs/xfs/linux-2.6/xfs_lrw.c 2007-11-15 11:32:12.451249159 +1100
> @@ -254,9 +254,8 @@ xfs_read(
>
> if (unlikely(ioflags & IO_ISDIRECT)) {
> if (VN_CACHED(vp))
> - ret = xfs_flushinval_pages(ip,
> - ctooff(offtoct(*offset)),
> - -1, FI_REMAPF_LOCKED);
> + ret = xfs_flushinval_pages(ip, (*offset & PAGE_CACHE_MASK),
> + -1, FI_REMAPF_LOCKED);
> mutex_unlock(&inode->i_mutex);
> if (ret) {
> xfs_iunlock(ip, XFS_IOLOCK_SHARED);
> @@ -742,9 +741,9 @@ retry:
> if (VN_CACHED(vp)) {
> WARN_ON(need_i_mutex = 0);
> xfs_inval_cached_trace(xip, pos, -1,
> - ctooff(offtoct(pos)), -1);
> + (pos & PAGE_CACHE_MASK), -1);
> error = xfs_flushinval_pages(xip,
> - ctooff(offtoct(pos)),
> + (pos & PAGE_CACHE_MASK),
> -1, FI_REMAPF_LOCKED);
> if (error)
> goto out_unlock_internal;
>
> =====================================> Index: fs/xfs/quota/xfs_qm.h
> =====================================>
> --- a/fs/xfs/quota/xfs_qm.h 2007-11-16 16:22:40.000000000 +1100
> +++ b/fs/xfs/quota/xfs_qm.h 2007-11-16 15:39:53.373375739 +1100
> @@ -52,8 +52,8 @@ extern kmem_zone_t *qm_dqtrxzone;
> /*
> * Dquot hashtable constants/threshold values.
> */
> -#define XFS_QM_HASHSIZE_LOW (NBPP / sizeof(xfs_dqhash_t))
> -#define XFS_QM_HASHSIZE_HIGH ((NBPP * 4) / sizeof(xfs_dqhash_t))
> +#define XFS_QM_HASHSIZE_LOW (PAGE_SIZE / sizeof(xfs_dqhash_t))
> +#define XFS_QM_HASHSIZE_HIGH ((PAGE_SIZE * 4) / sizeof(xfs_dqhash_t))
>
> /*
> * This defines the unit of allocation of dquots.
>
> =====================================> Index: fs/xfs/xfs_bmap.c
> =====================================>
> --- a/fs/xfs/xfs_bmap.c 2007-11-16 16:22:41.000000000 +1100
> +++ b/fs/xfs/xfs_bmap.c 2007-11-16 15:40:27.017050666 +1100
> @@ -2830,11 +2830,11 @@ xfs_bmap_btalloc(
> args.prod = align;
> if ((args.mod = (xfs_extlen_t)do_mod(ap->off, args.prod)))
> args.mod = (xfs_extlen_t)(args.prod - args.mod);
> - } else if (mp->m_sb.sb_blocksize >= NBPP) {
> + } else if (mp->m_sb.sb_blocksize >= PAGE_CACHE_SIZE) {
> args.prod = 1;
> args.mod = 0;
> } else {
> - args.prod = NBPP >> mp->m_sb.sb_blocklog;
> + args.prod = PAGE_CACHE_SIZE >> mp->m_sb.sb_blocklog;
> if ((args.mod = (xfs_extlen_t)(do_mod(ap->off, args.prod))))
> args.mod = (xfs_extlen_t)(args.prod - args.mod);
> }
>
> =====================================> Index: fs/xfs/xfs_itable.c
> =====================================>
> --- a/fs/xfs/xfs_itable.c 2007-11-16 16:22:40.000000000 +1100
> +++ b/fs/xfs/xfs_itable.c 2007-11-16 16:05:51.381600461 +1100
> @@ -393,7 +393,7 @@ xfs_bulkstat(
> (XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog);
> nimask = ~(nicluster - 1);
> nbcluster = nicluster >> mp->m_sb.sb_inopblog;
> - irbuf = kmem_zalloc_greedy(&irbsize, NBPC, NBPC * 4,
> + irbuf = kmem_zalloc_greedy(&irbsize, PAGE_SIZE, PAGE_SIZE * 4,
> KM_SLEEP | KM_MAYFAIL | KM_LARGE);
> nirbuf = irbsize / sizeof(*irbuf);
>
> @@ -815,7 +815,7 @@ xfs_inumbers(
> agino = XFS_INO_TO_AGINO(mp, ino);
> left = *count;
> *count = 0;
> - bcount = MIN(left, (int)(NBPP / sizeof(*buffer)));
> + bcount = MIN(left, (int)(PAGE_SIZE / sizeof(*buffer)));
> buffer = kmem_alloc(bcount * sizeof(*buffer), KM_SLEEP);
> error = bufidx = 0;
> cur = NULL;
>
> =====================================> Index: fs/xfs/xfs_log.c
> =====================================>
> --- a/fs/xfs/xfs_log.c 2007-11-16 16:22:40.000000000 +1100
> +++ b/fs/xfs/xfs_log.c 2007-11-16 15:56:42.615917720 +1100
> @@ -1552,7 +1552,7 @@ xlog_dealloc_log(xlog_t *log)
> tic = log->l_unmount_free;
> while (tic) {
> next_tic = tic->t_next;
> - kmem_free(tic, NBPP);
> + kmem_free(tic, PAGE_SIZE);
> tic = next_tic;
> }
> }
> @@ -3161,13 +3161,13 @@ xlog_state_ticket_alloc(xlog_t *log)
> xlog_ticket_t *t_list;
> xlog_ticket_t *next;
> xfs_caddr_t buf;
> - uint i = (NBPP / sizeof(xlog_ticket_t)) - 2;
> + uint i = (PAGE_SIZE / sizeof(xlog_ticket_t)) - 2;
>
> /*
> * The kmem_zalloc may sleep, so we shouldn't be holding the
> * global lock. XXXmiken: may want to use zone allocator.
> */
> - buf = (xfs_caddr_t) kmem_zalloc(NBPP, KM_SLEEP);
> + buf = (xfs_caddr_t) kmem_zalloc(PAGE_SIZE, KM_SLEEP);
>
> spin_lock(&log->l_icloglock);
>
>
> =====================================> Index: fs/xfs/xfs_vnodeops.c
> =====================================>
> --- a/fs/xfs/xfs_vnodeops.c 2007-11-16 16:22:41.000000000 +1100
> +++ b/fs/xfs/xfs_vnodeops.c 2007-11-16 15:57:01.449505791 +1100
> @@ -4164,15 +4164,12 @@ xfs_free_file_space(
> vn_iowait(ip); /* wait for the completion of any pending DIOs */
> }
>
> - rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, NBPP);
> + rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, PAGE_CACHE_SIZE);
> ioffset = offset & ~(rounding - 1);
>
> if (VN_CACHED(vp) != 0) {
> - xfs_inval_cached_trace(ip, ioffset, -1,
> - ctooff(offtoct(ioffset)), -1);
> - error = xfs_flushinval_pages(ip,
> - ctooff(offtoct(ioffset)),
> - -1, FI_REMAPF_LOCKED);
> + xfs_inval_cached_trace(ip, ioffset, -1, ioffset, -1);
> + error = xfs_flushinval_pages(ip, ioffset, -1, FI_REMAPF_LOCKED);
> if (error)
> goto out_unlock_iolock;
> }
>
>
>
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [xfs-masters] [PATCH] remove BPCSHIFT and NB?P? macros - was fs/xfs: remove duplicated defines
@ 2007-11-16 6:15 ` Lachlan McIlroy
0 siblings, 0 replies; 17+ messages in thread
From: Lachlan McIlroy @ 2007-11-16 6:15 UTC (permalink / raw)
To: xfs-masters; +Cc: Eric Sandeen, xfs, kernel-janitors
Looks good Tim. Nice work.
Timothy Shimmin wrote:
> David Chinner wrote:
>>> While here, looking at a few others...
>>> #define NBPP PAGE_SIZE
>>> #define NDPP (1 << (PAGE_SHIFT - 9)) <--- not used - another to nuke
>>> #define NBPC PAGE_SIZE <----- used once
>>>
>>> grep -Ir 'NBPC' . | egrep -v 'tag|anot|diff'
>>> ./linux-2.6/xfs_linux.h:#define NBPC PAGE_SIZE /* Number of bytes per click */
>>> ./xfs_itable.c: irbuf = kmem_zalloc_greedy(&irbsize, NBPC, NBPC * 4,
>>>
>>> > grep -Ir 'NBPP' . | egrep -v 'tag|anot|diff|NBPPR'
>>> ./linux-2.6/xfs_linux.h:#define NBPP PAGE_SIZE
>>> ./quota/xfs_qm.h:#define XFS_QM_HASHSIZE_LOW (NBPP / sizeof(xfs_dqhash_t))
>>> ./quota/xfs_qm.h:#define XFS_QM_HASHSIZE_HIGH ((NBPP * 4) / sizeof(xfs_dqhash_t))
>> PAGE_SIZE
>>
>>> ./xfs_bmap.c: } else if (mp->m_sb.sb_blocksize >= NBPP) {
>>> ./xfs_bmap.c: args.prod = NBPP >> mp->m_sb.sb_blocklog;
>> PAGE_CACHE_SIZE
>>
>>> ./xfs_itable.c: bcount = MIN(left, (int)(NBPP / sizeof(*buffer)));
>> PAGE_SIZE
>>
>>> ./xfs_log.c: kmem_free(tic, NBPP);
>>> ./xfs_log.c: uint i = (NBPP / sizeof(xlog_ticket_t)) - 2;
>>> ./xfs_log.c: buf = (xfs_caddr_t) kmem_zalloc(NBPP, KM_SLEEP);
>> We should replace that hand rolled ticket allocator with a slab cache.
>>
> In another patch though.
>
>>> ./xfs_vnodeops.c: rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, NBPP);
>> PAGE_CACHE_SIZE. (as suggested ;)
>>
>>> Might as well get rid of NBPC and replace by NBPP.
>>>
>>> Is it just worth s/NBPC/PAGE_SIZE/g ?
>> yup.
>>
> Thanks.
>
> Patch:
> -------------
>
> Remove the BPCSHIFT and NB* based macros from XFS.
>
> The BPCSHIFT based macros, btoc*, ctob*, offtoc* and ctooff
> are either not used or don't need to be used.
> The NDPP, NDPP, NBBY macros don't need to be used but instead
> are replaced directly by PAGE_SIZE and PAGE_CACHE_SIZE
> where appropriate.
> Initial patch and motivation from Nicolas Kaiser.
>
> Signed-Off-By: Tim Shimmin <tes@sgi.com>
> ---
> b/fs/xfs/linux-2.6/xfs_linux.h | 28 +---------------------------
> b/fs/xfs/linux-2.6/xfs_lrw.c | 9 ++++-----
> b/fs/xfs/quota/xfs_qm.h | 4 ++--
> b/fs/xfs/xfs_bmap.c | 4 ++--
> b/fs/xfs/xfs_itable.c | 4 ++--
> b/fs/xfs/xfs_log.c | 6 +++---
> b/fs/xfs/xfs_vnodeops.c | 9 +++------
> 7 files changed, 17 insertions(+), 47 deletions(-)
>
> ===========================================================================
> Index: fs/xfs/linux-2.6/xfs_linux.h
> ===========================================================================
>
> --- a/fs/xfs/linux-2.6/xfs_linux.h 2007-11-16 16:22:40.000000000 +1100
> +++ b/fs/xfs/linux-2.6/xfs_linux.h 2007-11-16 15:59:22.299466117 +1100
> @@ -143,43 +143,17 @@
>
> #define spinlock_destroy(lock)
>
> -#define NBPP PAGE_SIZE
> -#define NDPP (1 << (PAGE_SHIFT - 9))
> -
> #define NBBY 8 /* number of bits per byte */
> -#define NBPC PAGE_SIZE /* Number of bytes per click */
> -#define BPCSHIFT PAGE_SHIFT /* LOG2(NBPC) if exact */
>
> /*
> * Size of block device i/o is parameterized here.
> * Currently the system supports page-sized i/o.
> */
> -#define BLKDEV_IOSHIFT BPCSHIFT
> +#define BLKDEV_IOSHIFT PAGE_CACHE_SHIFT
> #define BLKDEV_IOSIZE (1<<BLKDEV_IOSHIFT)
> /* number of BB's per block device block */
> #define BLKDEV_BB BTOBB(BLKDEV_IOSIZE)
>
> -/* bytes to clicks */
> -#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
> -#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
> -#define btoc64(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
> -#define btoct64(x) ((__uint64_t)(x)>>BPCSHIFT)
> -
> -/* off_t bytes to clicks */
> -#define offtoc(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
> -#define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
> -
> -/* clicks to off_t bytes */
> -#define ctooff(x) ((xfs_off_t)(x)<<BPCSHIFT)
> -
> -/* clicks to bytes */
> -#define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
> -#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
> -#define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
> -
> -/* bytes to clicks */
> -#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
> -
> #define ENOATTR ENODATA /* Attribute not found */
> #define EWRONGFS EINVAL /* Mount with wrong filesystem type */
> #define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
>
> ===========================================================================
> Index: fs/xfs/linux-2.6/xfs_lrw.c
> ===========================================================================
>
> --- a/fs/xfs/linux-2.6/xfs_lrw.c 2007-11-16 16:22:40.000000000 +1100
> +++ b/fs/xfs/linux-2.6/xfs_lrw.c 2007-11-15 11:32:12.451249159 +1100
> @@ -254,9 +254,8 @@ xfs_read(
>
> if (unlikely(ioflags & IO_ISDIRECT)) {
> if (VN_CACHED(vp))
> - ret = xfs_flushinval_pages(ip,
> - ctooff(offtoct(*offset)),
> - -1, FI_REMAPF_LOCKED);
> + ret = xfs_flushinval_pages(ip, (*offset & PAGE_CACHE_MASK),
> + -1, FI_REMAPF_LOCKED);
> mutex_unlock(&inode->i_mutex);
> if (ret) {
> xfs_iunlock(ip, XFS_IOLOCK_SHARED);
> @@ -742,9 +741,9 @@ retry:
> if (VN_CACHED(vp)) {
> WARN_ON(need_i_mutex == 0);
> xfs_inval_cached_trace(xip, pos, -1,
> - ctooff(offtoct(pos)), -1);
> + (pos & PAGE_CACHE_MASK), -1);
> error = xfs_flushinval_pages(xip,
> - ctooff(offtoct(pos)),
> + (pos & PAGE_CACHE_MASK),
> -1, FI_REMAPF_LOCKED);
> if (error)
> goto out_unlock_internal;
>
> ===========================================================================
> Index: fs/xfs/quota/xfs_qm.h
> ===========================================================================
>
> --- a/fs/xfs/quota/xfs_qm.h 2007-11-16 16:22:40.000000000 +1100
> +++ b/fs/xfs/quota/xfs_qm.h 2007-11-16 15:39:53.373375739 +1100
> @@ -52,8 +52,8 @@ extern kmem_zone_t *qm_dqtrxzone;
> /*
> * Dquot hashtable constants/threshold values.
> */
> -#define XFS_QM_HASHSIZE_LOW (NBPP / sizeof(xfs_dqhash_t))
> -#define XFS_QM_HASHSIZE_HIGH ((NBPP * 4) / sizeof(xfs_dqhash_t))
> +#define XFS_QM_HASHSIZE_LOW (PAGE_SIZE / sizeof(xfs_dqhash_t))
> +#define XFS_QM_HASHSIZE_HIGH ((PAGE_SIZE * 4) / sizeof(xfs_dqhash_t))
>
> /*
> * This defines the unit of allocation of dquots.
>
> ===========================================================================
> Index: fs/xfs/xfs_bmap.c
> ===========================================================================
>
> --- a/fs/xfs/xfs_bmap.c 2007-11-16 16:22:41.000000000 +1100
> +++ b/fs/xfs/xfs_bmap.c 2007-11-16 15:40:27.017050666 +1100
> @@ -2830,11 +2830,11 @@ xfs_bmap_btalloc(
> args.prod = align;
> if ((args.mod = (xfs_extlen_t)do_mod(ap->off, args.prod)))
> args.mod = (xfs_extlen_t)(args.prod - args.mod);
> - } else if (mp->m_sb.sb_blocksize >= NBPP) {
> + } else if (mp->m_sb.sb_blocksize >= PAGE_CACHE_SIZE) {
> args.prod = 1;
> args.mod = 0;
> } else {
> - args.prod = NBPP >> mp->m_sb.sb_blocklog;
> + args.prod = PAGE_CACHE_SIZE >> mp->m_sb.sb_blocklog;
> if ((args.mod = (xfs_extlen_t)(do_mod(ap->off, args.prod))))
> args.mod = (xfs_extlen_t)(args.prod - args.mod);
> }
>
> ===========================================================================
> Index: fs/xfs/xfs_itable.c
> ===========================================================================
>
> --- a/fs/xfs/xfs_itable.c 2007-11-16 16:22:40.000000000 +1100
> +++ b/fs/xfs/xfs_itable.c 2007-11-16 16:05:51.381600461 +1100
> @@ -393,7 +393,7 @@ xfs_bulkstat(
> (XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog);
> nimask = ~(nicluster - 1);
> nbcluster = nicluster >> mp->m_sb.sb_inopblog;
> - irbuf = kmem_zalloc_greedy(&irbsize, NBPC, NBPC * 4,
> + irbuf = kmem_zalloc_greedy(&irbsize, PAGE_SIZE, PAGE_SIZE * 4,
> KM_SLEEP | KM_MAYFAIL | KM_LARGE);
> nirbuf = irbsize / sizeof(*irbuf);
>
> @@ -815,7 +815,7 @@ xfs_inumbers(
> agino = XFS_INO_TO_AGINO(mp, ino);
> left = *count;
> *count = 0;
> - bcount = MIN(left, (int)(NBPP / sizeof(*buffer)));
> + bcount = MIN(left, (int)(PAGE_SIZE / sizeof(*buffer)));
> buffer = kmem_alloc(bcount * sizeof(*buffer), KM_SLEEP);
> error = bufidx = 0;
> cur = NULL;
>
> ===========================================================================
> Index: fs/xfs/xfs_log.c
> ===========================================================================
>
> --- a/fs/xfs/xfs_log.c 2007-11-16 16:22:40.000000000 +1100
> +++ b/fs/xfs/xfs_log.c 2007-11-16 15:56:42.615917720 +1100
> @@ -1552,7 +1552,7 @@ xlog_dealloc_log(xlog_t *log)
> tic = log->l_unmount_free;
> while (tic) {
> next_tic = tic->t_next;
> - kmem_free(tic, NBPP);
> + kmem_free(tic, PAGE_SIZE);
> tic = next_tic;
> }
> }
> @@ -3161,13 +3161,13 @@ xlog_state_ticket_alloc(xlog_t *log)
> xlog_ticket_t *t_list;
> xlog_ticket_t *next;
> xfs_caddr_t buf;
> - uint i = (NBPP / sizeof(xlog_ticket_t)) - 2;
> + uint i = (PAGE_SIZE / sizeof(xlog_ticket_t)) - 2;
>
> /*
> * The kmem_zalloc may sleep, so we shouldn't be holding the
> * global lock. XXXmiken: may want to use zone allocator.
> */
> - buf = (xfs_caddr_t) kmem_zalloc(NBPP, KM_SLEEP);
> + buf = (xfs_caddr_t) kmem_zalloc(PAGE_SIZE, KM_SLEEP);
>
> spin_lock(&log->l_icloglock);
>
>
> ===========================================================================
> Index: fs/xfs/xfs_vnodeops.c
> ===========================================================================
>
> --- a/fs/xfs/xfs_vnodeops.c 2007-11-16 16:22:41.000000000 +1100
> +++ b/fs/xfs/xfs_vnodeops.c 2007-11-16 15:57:01.449505791 +1100
> @@ -4164,15 +4164,12 @@ xfs_free_file_space(
> vn_iowait(ip); /* wait for the completion of any pending DIOs */
> }
>
> - rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, NBPP);
> + rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, PAGE_CACHE_SIZE);
> ioffset = offset & ~(rounding - 1);
>
> if (VN_CACHED(vp) != 0) {
> - xfs_inval_cached_trace(ip, ioffset, -1,
> - ctooff(offtoct(ioffset)), -1);
> - error = xfs_flushinval_pages(ip,
> - ctooff(offtoct(ioffset)),
> - -1, FI_REMAPF_LOCKED);
> + xfs_inval_cached_trace(ip, ioffset, -1, ioffset, -1);
> + error = xfs_flushinval_pages(ip, ioffset, -1, FI_REMAPF_LOCKED);
> if (error)
> goto out_unlock_iolock;
> }
>
>
>
>
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2007-11-16 6:17 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-11 12:43 [PATCH] fs/xfs: remove duplicated defines Nicolas Kaiser
2007-11-11 23:57 ` [xfs-masters] " Eric Sandeen
2007-11-11 23:57 ` Eric Sandeen
2007-11-12 0:09 ` Timothy Shimmin
2007-11-12 0:09 ` Timothy Shimmin
2007-11-12 0:28 ` Timothy Shimmin
2007-11-12 0:33 ` [xfs-masters] " Timothy Shimmin
2007-11-12 2:04 ` David Chinner
2007-11-13 5:35 ` Timothy Shimmin
2007-11-13 21:30 ` David Chinner
2007-11-14 2:46 ` Timothy Shimmin
2007-11-14 5:41 ` David Chinner
2007-11-15 0:54 ` Timothy Shimmin
2007-11-15 6:27 ` David Chinner
2007-11-16 5:34 ` [PATCH] remove BPCSHIFT and NB?P? macros - was fs/xfs: remove duplicated Timothy Shimmin
2007-11-16 6:15 ` [xfs-masters] [PATCH] remove BPCSHIFT and NB?P? macros - was Lachlan McIlroy
2007-11-16 6:15 ` [xfs-masters] [PATCH] remove BPCSHIFT and NB?P? macros - was fs/xfs: remove duplicated defines Lachlan McIlroy
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.