linux-fsdevel mailing list

FromSubjectsort iconDate
Neil Brown
Re: Race between generic_forget_inode() and sync_sb_inodes()?
My second guess is that we have been lucky.... which is hard to believe. I wonder if iput (and even iget) should BUG on I_WILL_FREE as well... Perplexed. NeilBrown -
Nov 29, 4:03 pm 2007
Neil Brown
Re: Race between generic_forget_inode() and sync_sb_inodes()?
Hi David, Looking at inode.c in 2.6.23-mm1, in generic_forget_inode, I see code: if (!hlist_unhashed(&inode->i_hash)) { if (!(inode->i_state & (I_DIRTY|I_SYNC))) list_move(&inode->i_list, &inode_unused); so it looks to me like: If the inode is hashed and dirty, then move it (off the s_dirty list) to inode_unused. So it seems to me that generic_forget_inode also finds it needs to remove the inode from the dirty list when setting I_WILL_FREE. Maybe we are looking at ...
Nov 29, 3:07 pm 2007
David Chinner
Re: Race between generic_forget_inode() and sync_sb_inodes()?
That check is for if the inode is _not_ dirty or being sync, right? Or have I just not had enough coffee this morning? Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 29, 3:24 pm 2007
David Chinner
Race between generic_forget_inode() and sync_sb_inodes()?
If we are in the process of dropping an inode and it is hashed, generic_forget_inode() will mark it I_WILL_FREE and drop the inode_lock before calling write_inode_now(). However, at this point, the inode is still on the sb->s_dirty_list so sync_sb_inodes() could see it and try to write it back. i.e.: generic_forget_inode sync_sb_inodes i_state |= ...
Nov 29, 2:55 pm 2007
Oleg Drokin
Leak in nlmsvc_testlock for async GETFL case
Hello! Per our discussion, I am resending this patch that fixes a leak in nlmsvc_testlock. It is addition to another leak fixing patch you already have. Without the patch, there is a leakage of nlmblock structure refcount that holds a reference nlmfile structure, that holds a reference to struct file, when async GETFL is used (-EINPROGRESS return from file_ops->lock()), and also in some error cases. Bye, Oleg
Nov 29, 11:46 am 2007
J. Bruce Fields
Re: Leak in nlmsvc_testlock for async GETFL case
Thanks for the fix! Looks right to me. Yes, somehow I missed this one when you sent it privately. Applied and pushed out to git://linux-nfs.org/~bfields/linux.git nfs-server-stable and I'll submit it for 2.6.25. Minor nit: your editor is messing up the whitespace; keep the indents all tabs. Also, for future patches, could you see Documentation/SubmittingPatches? In particular, see "12) Sign your work". And it'd be better to inline the patch if at all possible. Thanks ...
Nov 29, 12:08 pm 2007
J. Bruce Fields
NFS client hang on attempt to do async blocking posix lo ...
Thanks, I'll take a look. Replying now just to add Marc to the cc:. --b. -
Nov 29, 12:15 pm 2007
Marc Eshel
Re: NFS client hang on attempt to do async blocking posi ...
The problem seems to be with the fact that the client and server are on the same machine. This test work fine with or without an underlaying fs that supports locking when the client and the server are on a different machines. Like you said the server is trying to send the grant message to the client but for some reason it fails when the client is on the same machine. Marc. -
Nov 29, 3:41 pm 2007
Oleg Drokin
NFS client hang on attempt to do async blocking posix lo ...
Hello! There is a problem with blocking async posix lock enqueue in 2.6.22 and 2.6.23 kernels. Lock call to underlying FS is done just fine, but when fl_grant is called to inform lockd of succesful granting, nothing happens, and no reply to client is sent. The end result is client reports that the server is not responding. I enabled dprintks in the code and I see that immediately after fl_grant, there is nlmsvc_grant_blocked message (after callback: ...
Nov 29, 12:04 pm 2007
Evgeniy Polyakov
[0/4] dst: Distributed storage.
Distributed storage. I'm pleased to announce the 9'th release of the distributed storage subsystem (DST). This is maintenance release and include bug fixing only. DST allows to form a storage on top of local and remote nodes and combine them into linear or mirroring setup, which in turn can be exported to remote nodes. Short changelog: * use node's size in sectors instead of bytes * fixed old/new ages for the first node. Error spotted by Matthew Hodgson <matthew@mxtelecom.com> * ...
Nov 29, 5:53 am 2007
Evgeniy Polyakov
[4/4] dst: Algorithms used in distributed storage.
Algorithms used in distributed storage. Mirror and linear mapping code. Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru> diff --git a/drivers/block/dst/alg_linear.c b/drivers/block/dst/alg_linear.c new file mode 100644 index 0000000..cb77b57 --- /dev/null +++ b/drivers/block/dst/alg_linear.c @@ -0,0 +1,104 @@ +/* + * 2007+ Copyright (c) Evgeniy Polyakov <johnpol@2ka.mipt.ru> + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + ...
Nov 29, 5:53 am 2007
Evgeniy Polyakov
[1/4] dst: Distributed storage documentation.
Distributed storage documentation. Algorithms used in the system, userspace interfaces (sysfs dirs and files), design and implementation details are described here. Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru> diff --git a/Documentation/dst/algorithms.txt b/Documentation/dst/algorithms.txt new file mode 100644 index 0000000..1437a6a --- /dev/null +++ b/Documentation/dst/algorithms.txt @@ -0,0 +1,115 @@ +Each storage by itself is just a set of contiguous logical blocks, ...
Nov 29, 5:53 am 2007
Evgeniy Polyakov
[3/4] dst: Network state machine.
Network state machine. Includes network async processing state machine and related tasks. Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru> diff --git a/drivers/block/dst/kst.c b/drivers/block/dst/kst.c new file mode 100644 index 0000000..ba5e5ef --- /dev/null +++ b/drivers/block/dst/kst.c @@ -0,0 +1,1475 @@ +/* + * 2007+ Copyright (c) Evgeniy Polyakov <johnpol@2ka.mipt.ru> + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + ...
Nov 29, 5:53 am 2007
Evgeniy Polyakov
[2/4] dst: Core distributed storage files.
Core distributed storage files. Include userspace interfaces, initialization, block layer bindings and other core functionality. Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru> diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig index b4c8319..ca6592d 100644 --- a/drivers/block/Kconfig +++ b/drivers/block/Kconfig @@ -451,6 +451,8 @@ config ATA_OVER_ETH This driver provides Support for ATA over Ethernet block devices like the Coraid EtherDrive (R) Storage Blade. ...
Nov 29, 5:53 am 2007
Fengguang Wu Nov 29, 1:32 am 2007
Christoph Lameter
[patch 19/19] Use page_cache_xxx in drivers/block/rd.c
Use page_cache_xxx in drivers/block/rd.c Signed-off-by: Christoph Lameter <clameter@sgi.com> --- drivers/block/rd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) Index: mm/drivers/block/rd.c =================================================================== --- mm.orig/drivers/block/rd.c 2007-11-28 12:19:49.673905513 -0800 +++ mm/drivers/block/rd.c 2007-11-28 14:13:01.076977633 -0800 @@ -122,7 +122,7 @@ static void make_page_uptodate(struct pa } } while ((bh = ...
Nov 28, 6:11 pm 2007
David Chinner
Re: [patch 10/19] Use page_cache_xxx in fs/buffer.c
That doesn't get any prettier. Perhaps: while (index > (curidx = page_cache_index(mapping, *bytes))) { curpos = *bytes; const pgoff_t end_index = page_cache_index(mapping, i_size); Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 8:34 pm 2007
David Chinner
Re: [patch 10/19] Use page_cache_xxx in fs/buffer.c
Works for me. Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 9:01 pm 2007
Christoph Lameter
[patch 10/19] Use page_cache_xxx in fs/buffer.c
Use page_cache_xxx in fs/buffer.c. Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/buffer.c | 101 +++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 56 insertions(+), 45 deletions(-) Index: mm/fs/buffer.c =================================================================== --- mm.orig/fs/buffer.c 2007-11-28 14:09:42.757727389 -0800 +++ mm/fs/buffer.c 2007-11-28 14:10:59.728728042 -0800 @@ -278,7 +278,7 @@ __find_get_block_slow(struct block_devic ...
Nov 28, 6:11 pm 2007
Christoph Lameter
Re: [patch 10/19] Use page_cache_xxx in fs/buffer.c
Results in a gcc warning about the possible use of an unitialized variable. How about this? fs/buffer.c enhancements and fixes Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/buffer.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) Index: mm/fs/buffer.c =================================================================== --- mm.orig/fs/buffer.c 2007-11-28 19:39:23.606383803 -0800 +++ mm/fs/buffer.c 2007-11-28 19:46:10.238382715 -0800 @@ -914,11 ...
Nov 28, 8:48 pm 2007
Christoph Lameter
Re: [patch 01/19] Define functions for page cache handling
Ok Then lets drop page_cache_mask completely. -
Nov 29, 12:23 pm 2007
Christoph Lameter
[patch 01/19] Define functions for page cache handling
We use the macros PAGE_CACHE_SIZE PAGE_CACHE_SHIFT PAGE_CACHE_MASK and PAGE_CACHE_ALIGN in various places in the kernel. Many times common operations like calculating the offset or the index are coded using shifts and adds. This patch provides inline functions to get the calculations accomplished without having to explicitly shift and add constants. All functions take an address_space pointer. The address space pointer will be used in the future to eventually support a larger ...
Nov 28, 6:10 pm 2007
Christoph Lameter
Re: [patch 01/19] Define functions for page cache handling
Na that is confusing. We really want to go to one byte before the end of the page. -
Nov 28, 8:21 pm 2007
David Chinner
Re: [patch 01/19] Define functions for page cache handling
return page_cache_index(a, pos + page_cache_mask(a)); Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 8:06 pm 2007
Fengguang Wu
Re: [patch 01/19] Define functions for page cache handling
A tiny question: Why choose loff_t instead of 'unsigned long'? It's not obvious because page_cache_mask() is not referenced in this patchset at all ;-) -
Nov 29, 1:44 am 2007
Christoph Lameter
Re: [patch 18/19] Use page_cache_xxx for fs/xfs
In other words the following patch? Fixes to the use of page_cache_xx functions in xfs Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/xfs/linux-2.6/xfs_aops.c | 17 ++++++----------- fs/xfs/linux-2.6/xfs_lrw.c | 2 +- 2 files changed, 7 insertions(+), 12 deletions(-) Index: mm/fs/xfs/linux-2.6/xfs_aops.c =================================================================== --- mm.orig/fs/xfs/linux-2.6/xfs_aops.c 2007-11-28 19:13:13.323382722 -0800 +++ ...
Nov 28, 8:28 pm 2007
Andrew Morton
Re: [patch 18/19] Use page_cache_xxx for fs/xfs
Given the error rate in the xfs patch my confidence in the rest of the series isn't terribly high, sorry. I guess I can suck up the core and xfs bits, but who is going to review the rest of them this closely? -
Nov 29, 1:24 am 2007
Christoph Lameter
[patch 18/19] Use page_cache_xxx for fs/xfs
Use page_cache_xxx for fs/xfs Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/xfs/linux-2.6/xfs_aops.c | 55 +++++++++++++++++++++++--------------------- fs/xfs/linux-2.6/xfs_lrw.c | 4 +-- 2 files changed, 31 insertions(+), 28 deletions(-) Index: mm/fs/xfs/linux-2.6/xfs_aops.c =================================================================== --- mm.orig/fs/xfs/linux-2.6/xfs_aops.c 2007-11-28 12:25:38.768212813 -0800 +++ mm/fs/xfs/linux-2.6/xfs_aops.c 2007-11-28 ...
Nov 28, 6:11 pm 2007
Christoph Lameter
Re: [patch 18/19] Use page_cache_xxx for fs/xfs
Is this correct? Fixes to the use of page_cache_xx functions in xfs Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/xfs/linux-2.6/xfs_aops.c | 18 ++++++++---------- fs/xfs/linux-2.6/xfs_lrw.c | 2 +- 2 files changed, 9 insertions(+), 11 deletions(-) Index: mm/fs/xfs/linux-2.6/xfs_aops.c =================================================================== --- mm.orig/fs/xfs/linux-2.6/xfs_aops.c 2007-11-28 19:13:13.323382722 -0800 +++ ...
Nov 28, 9:06 pm 2007
David Chinner
Re: [patch 18/19] Use page_cache_xxx for fs/xfs
That's not right. Should be Hmmmm. p_offset = min(val & 4095, 4096)? I think that should just be: Again, that can be: p_offset = page_cache_offset(map, end_offset); offset = page_cache_index(map, Kill the "within page" comment. Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 8:03 pm 2007
David Chinner
Re: [patch 18/19] Use page_cache_xxx for fs/xfs
No, still need the roundup. i.e.: - p_offset = min_t(unsigned long, page_cache_offset(map, end_offset), - page_cache_size(map)); + p_offset = page_cache_offset(map, end_offset); Ok. Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 8:58 pm 2007
David Chinner
Re: [patch 18/19] Use page_cache_xxx for fs/xfs
Yup, looks good now. Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 9:10 pm 2007
Christoph Lameter
[patch 17/19] Use page_cache_xxx in fs/reiserfs
Use page_cache_xxx in fs/reiserfs Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/reiserfs/file.c | 6 ++++-- fs/reiserfs/inode.c | 33 ++++++++++++++++++++------------- fs/reiserfs/ioctl.c | 2 +- fs/reiserfs/stree.c | 5 +++-- fs/reiserfs/tail_conversion.c | 5 +++-- fs/reiserfs/xattr.c | 19 ++++++++++--------- 6 files changed, 41 insertions(+), 29 deletions(-) Index: ...
Nov 28, 6:11 pm 2007
David Chinner
Re: [patch 17/19] Use page_cache_xxx in fs/reiserfs
unsigned long offset = page_cache_offset(p_s_inode->i_mapping, Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 8:54 pm 2007
David Chinner
Re: [patch 17/19] Use page_cache_xxx in fs/reiserfs
Ok. Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 9:08 pm 2007
Christoph Lameter
Re: [patch 17/19] Use page_cache_xxx in fs/reiserfs
Reiserfs: Wrong type of inline function Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/reiserfs/inode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: mm/fs/reiserfs/inode.c =================================================================== --- mm.orig/fs/reiserfs/inode.c 2007-11-28 19:59:41.083133259 -0800 +++ mm/fs/reiserfs/inode.c 2007-11-28 20:00:23.317882809 -0800 @@ -2006,7 +2006,7 @@ static int grab_tail_page(struct inode * unsigned long pos ...
Nov 28, 9:02 pm 2007
Christoph Lameter
[patch 16/19] Use page_cache_xxx in fs/ext4
Use page_cache_xxx in fs/ext4 Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/ext4/dir.c | 3 ++- fs/ext4/inode.c | 33 +++++++++++++++++---------------- 2 files changed, 19 insertions(+), 17 deletions(-) Index: mm/fs/ext4/dir.c =================================================================== --- mm.orig/fs/ext4/dir.c 2007-11-28 12:24:24.767962686 -0800 +++ mm/fs/ext4/dir.c 2007-11-28 14:11:23.532977270 -0800 @@ -132,7 +132,8 @@ static int ext4_readdir(struct file * ...
Nov 28, 6:11 pm 2007
David Chinner
Re: [patch 16/19] Use page_cache_xxx in fs/ext4
These three should use the pagesize variable. Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 8:48 pm 2007
Christoph Lameter
Re: [patch 16/19] Use page_cache_xxx in fs/ext4
ext4: use pagesize variable instead of the inline function Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/ext4/inode.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) Index: mm/fs/ext4/inode.c =================================================================== --- mm.orig/fs/ext4/inode.c 2007-11-28 19:56:18.234382799 -0800 +++ mm/fs/ext4/inode.c 2007-11-28 19:57:10.774132672 -0800 @@ -1693,17 +1693,16 @@ static int ext4_journalled_writepage(str * ...
Nov 28, 8:58 pm 2007
David Chinner
Re: [patch 16/19] Use page_cache_xxx in fs/ext4
ok. Cheers, dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 9:07 pm 2007
David Chinner
Re: [patch 14/19] Use page_cache_xxx in ext2
last_byte -= page_cache_pos(mapping, page_nr, 0); Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 8:45 pm 2007
David Chinner
Re: [patch 14/19] Use page_cache_xxx in ext2
Looks good. Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 9:19 pm 2007
Christoph Lameter
[patch 14/19] Use page_cache_xxx in ext2
Use page_cache_xxx functions in fs/ext2/* Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/ext2/dir.c | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) Index: linux-2.6/fs/ext2/dir.c =================================================================== --- linux-2.6.orig/fs/ext2/dir.c 2007-11-26 17:45:29.155116723 -0800 +++ linux-2.6/fs/ext2/dir.c 2007-11-26 18:15:08.660772219 -0800 @@ -63,7 +63,8 @@ static inline void ...
Nov 28, 6:11 pm 2007
Christoph Lameter
Re: [patch 14/19] Use page_cache_xxx in ext2
Ok. So this? ext2: Simplify some functions Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/ext2/dir.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) Index: mm/fs/ext2/dir.c =================================================================== --- mm.orig/fs/ext2/dir.c 2007-11-28 20:13:07.387132777 -0800 +++ mm/fs/ext2/dir.c 2007-11-28 20:14:35.739632586 -0800 @@ -63,8 +63,7 @@ static inline void ext2_put_page(struct static inline unsigned long ...
Nov 28, 9:15 pm 2007
Christoph Lameter
Re: [patch 14/19] Use page_cache_xxx in ext2
ext2: Simplify some functions Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/ext2/dir.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) Index: mm/fs/ext2/dir.c =================================================================== --- mm.orig/fs/ext2/dir.c 2007-11-28 19:51:05.038882954 -0800 +++ mm/fs/ext2/dir.c 2007-11-28 19:53:59.074132710 -0800 @@ -63,8 +63,7 @@ static inline void ext2_put_page(struct static inline unsigned long dir_pages(struct inode ...
Nov 28, 8:55 pm 2007
David Chinner
Re: [patch 14/19] Use page_cache_xxx in ext2
I don't think that gives the same return value. The return value is supposed to be clamped at a maximum of page_cache_size(mapping). Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 9:06 pm 2007
Christoph Lameter
[patch 15/19] Use page_cache_xxx in fs/ext3
Use page_cache_xxx in fs/ext3 Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/ext3/dir.c | 3 ++- fs/ext3/inode.c | 39 ++++++++++++++++++++------------------- 2 files changed, 22 insertions(+), 20 deletions(-) Index: mm/fs/ext3/dir.c =================================================================== --- mm.orig/fs/ext3/dir.c 2007-11-16 21:16:36.000000000 -0800 +++ mm/fs/ext3/dir.c 2007-11-28 14:11:16.689227316 -0800 @@ -133,7 +133,8 @@ static int ext3_readdir(struct ...
Nov 28, 6:11 pm 2007
David Chinner
Re: [patch 13/19] Use page_cache_xxx in fs/splice.c
Ok. Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 9:02 pm 2007
Christoph Lameter
Re: [patch 13/19] Use page_cache_xxx in fs/splice.c
splice.c: Wrong inline function used Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/splice.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: mm/fs/splice.c =================================================================== --- mm.orig/fs/splice.c 2007-11-28 19:48:43.246633219 -0800 +++ mm/fs/splice.c 2007-11-28 19:49:06.405882592 -0800 @@ -454,7 +454,7 @@ fill_it: */ while (page_nr < nr_pages) ...
Nov 28, 8:50 pm 2007
David Chinner
Re: [patch 13/19] Use page_cache_xxx in fs/splice.c
in->f_ra.prev_pos = page_cache_pos(mapping, index, 0); Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 8:40 pm 2007
Christoph Lameter
[patch 13/19] Use page_cache_xxx in fs/splice.c
Use page_cache_xxx in fs/splice.c Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/splice.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) Index: mm/fs/splice.c =================================================================== --- mm.orig/fs/splice.c 2007-11-28 12:25:34.032908404 -0800 +++ mm/fs/splice.c 2007-11-28 14:11:11.285227032 -0800 @@ -285,9 +285,9 @@ __generic_file_splice_read(struct file * .spd_release = spd_release_page, ...
Nov 28, 6:11 pm 2007
Christoph Lameter
[patch 09/19] Use page_cache_xxx in fs/sync
Use page_cache_xxx in fs/sync. Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/sync.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) Index: mm/fs/sync.c =================================================================== --- mm.orig/fs/sync.c 2007-11-16 21:16:36.000000000 -0800 +++ mm/fs/sync.c 2007-11-28 14:10:56.269227507 -0800 @@ -260,8 +260,8 @@ int do_sync_mapping_range(struct address ret = 0; if (flags & SYNC_FILE_RANGE_WAIT_BEFORE) { ret = ...
Nov 28, 6:11 pm 2007
Christoph Lameter
[patch 12/19] Use page_cache_xxx in mm/fadvise.c
Use page_cache_xxx in mm/fadvise.c Signed-off-by: Christoph Lameter <clameter@sgi.com> --- mm/fadvise.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) Index: mm/mm/fadvise.c =================================================================== --- mm.orig/mm/fadvise.c 2007-11-16 21:16:36.000000000 -0800 +++ mm/mm/fadvise.c 2007-11-28 14:11:06.164977155 -0800 @@ -79,8 +79,8 @@ asmlinkage long sys_fadvise64_64(int fd, } /* First and last PARTIAL page! ...
Nov 28, 6:11 pm 2007
Christoph Lameter
[patch 04/19] Use page_cache_xxx in mm/truncate.c
Use page_cache_xxx in mm/truncate.c Signed-off-by: Christoph Lameter <clameter@sgi.com> --- mm/truncate.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) Index: mm/mm/truncate.c =================================================================== --- mm.orig/mm/truncate.c 2007-11-28 12:27:32.480099915 -0800 +++ mm/mm/truncate.c 2007-11-28 14:10:39.013977394 -0800 @@ -46,9 +46,10 @@ void do_invalidatepage(struct page *page ...
Nov 28, 6:10 pm 2007
Christoph Lameter
[patch 11/19] Use page_cache_xxx in mm/mpage.c
Use page_cache_xxx in mm/mpage.c Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/mpage.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) Index: linux-2.6/fs/mpage.c =================================================================== --- linux-2.6.orig/fs/mpage.c 2007-11-26 17:51:53.347521636 -0800 +++ linux-2.6/fs/mpage.c 2007-11-26 18:12:48.496772168 -0800 @@ -125,7 +125,8 @@ mpage_alloc(struct block_device *bdev, static void ...
Nov 28, 6:11 pm 2007
Christoph Lameter
[patch 08/19] Use page_cache_xxx in fs/libfs.c
Use page_cache_xxx in fs/libfs.c Signed-off-by: Christoph Lameter <clameter@sgi.com> --- fs/libfs.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) Index: mm/fs/libfs.c =================================================================== --- mm.orig/fs/libfs.c 2007-11-28 12:24:57.449215408 -0800 +++ mm/fs/libfs.c 2007-11-28 14:10:51.773477763 -0800 @@ -17,7 +17,8 @@ int simple_getattr(struct vfsmount *mnt, { struct inode *inode = dentry->d_inode; ...
Nov 28, 6:11 pm 2007
Christoph Lameter
[patch 06/19] Use page_cache_xxx in mm/filemap_xip.c
Use page_cache_xxx in mm/filemap_xip.c Signed-off-by: Christoph Lameter <clameter@sgi.com> --- mm/filemap_xip.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) Index: mm/mm/filemap_xip.c =================================================================== --- mm.orig/mm/filemap_xip.c 2007-11-28 12:27:32.155962689 -0800 +++ mm/mm/filemap_xip.c 2007-11-28 14:10:46.124978450 -0800 @@ -60,24 +60,24 @@ do_xip_mapping_read(struct address_space ...
Nov 28, 6:10 pm 2007
Fengguang Wu
Re: [patch 06/19] Use page_cache_xxx in mm/filemap_xip.c
page_cache_offset(mapping, isize - 1) + 1; or: page_cache_next(mapping, isize); Cheers, Fengguang -
Nov 29, 2:18 am 2007
Christoph Lameter
[patch 03/19] Use page_cache_xxx in mm/page-writeback.c
Use page_cache_xxx in mm/page-writeback.c Signed-off-by: Christoph Lameter <clameter@sgi.com> --- mm/page-writeback.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Index: mm/mm/page-writeback.c =================================================================== --- mm.orig/mm/page-writeback.c 2007-11-28 12:27:32.211962401 -0800 +++ mm/mm/page-writeback.c 2007-11-28 14:10:34.338227137 -0800 @@ -818,8 +818,8 @@ int write_cache_pages(struct address_spa index = ...
Nov 28, 6:10 pm 2007
Christoph Lameter
[patch 05/19] Use page_cache_xxx in mm/rmap.c
Use page_cache_xxx in mm/rmap.c Signed-off-by: Christoph Lameter <clameter@sgi.com> --- mm/rmap.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) Index: mm/mm/rmap.c =================================================================== --- mm.orig/mm/rmap.c 2007-11-28 12:27:32.312059099 -0800 +++ mm/mm/rmap.c 2007-11-28 14:10:42.758227810 -0800 @@ -190,9 +190,14 @@ static void page_unlock_anon_vma(struct static inline unsigned long vma_address(struct page *page, ...
Nov 28, 6:10 pm 2007
David Chinner
Re: [patch 05/19] Use page_cache_xxx in mm/rmap.c
And the other two occurrences of this in the first patch? Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 8:59 pm 2007
Christoph Lameter
Re: [patch 05/19] Use page_cache_xxx in mm/rmap.c
Yes that is much simpler rmap: simplify page_referenced_file use of page cache inlines Signed-off-by: Christoph Lameter <clameter@sgi.com> --- mm/rmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: mm/mm/rmap.c =================================================================== --- mm.orig/mm/rmap.c 2007-11-28 19:28:45.689883608 -0800 +++ mm/mm/rmap.c 2007-11-28 19:29:35.090382690 -0800 @@ -350,7 +350,7 @@ static int page_referenced_file(struct p { unsigned ...
Nov 28, 8:30 pm 2007
Christoph Lameter
Re: [patch 05/19] Use page_cache_xxx in mm/rmap.c
Ahh... Ok they are also in rmap.c: rmap: simplify page_referenced_file use of page cache inlines Signed-off-by: Christoph Lameter <clameter@sgi.com> --- mm/rmap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Index: mm/mm/rmap.c =================================================================== --- mm.orig/mm/rmap.c 2007-11-28 20:03:15.255240262 -0800 +++ mm/mm/rmap.c 2007-11-28 20:08:50.278132294 -0800 @@ -350,7 +350,7 @@ static int page_referenced_file(struct ...
Nov 28, 9:09 pm 2007
David Chinner
Re: [patch 05/19] Use page_cache_xxx in mm/rmap.c
Based on the first hunk, shouldn't this be: pgoff_t pgoff = page->index << mapping_order(mapping); Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 8:19 pm 2007
David Chinner
Re: [patch 05/19] Use page_cache_xxx in mm/rmap.c
Ok. Cheers, dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 9:11 pm 2007
Christoph Lameter
[patch 02/19] Use page_cache_xxx functions in mm/filemap.c
Convert the uses of PAGE_CACHE_xxx to use page_cache_xxx instead. Signed-off-by: Christoph Lameter <clameter@sgi.com> --- mm/filemap.c | 91 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 46 insertions(+), 45 deletions(-) Index: mm/mm/filemap.c =================================================================== --- mm.orig/mm/filemap.c 2007-11-28 12:27:32.155962689 -0800 +++ mm/mm/filemap.c 2007-11-28 14:10:29.408977142 -0800 @@ -314,8 +314,8 @@ ...
Nov 28, 6:10 pm 2007
Christoph Lameter
[patch 07/19] Use page_cache_xxx in mm/migrate.c
Use page_cache_xxx in mm/migrate.c Signed-off-by: Christoph Lameter <clameter@sgi.com> --- mm/migrate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: mm/mm/migrate.c =================================================================== --- mm.orig/mm/migrate.c 2007-11-28 12:27:32.184464256 -0800 +++ mm/mm/migrate.c 2007-11-28 14:10:49.200977227 -0800 @@ -197,7 +197,7 @@ static void remove_file_migration_ptes(s struct vm_area_struct *vma; struct address_space *mapping ...
Nov 28, 6:10 pm 2007
Christoph Lameter
[patch 00/19] Page cache: Replace PAGE_CACHE_xx with inl ...
This patchset cleans up page cache handling by replacing open coded shifts and adds with inline function calls. The ultimate goal is to replace all uses of PAGE_CACHE_xxx in the kernel through the use of these functions. All the functions take a mapping parameter. The mapping parameter is required if we want to support large block sizes in filesystems and block devices. Patchset against 2.6.24-rc3-mm2. -- -
Nov 28, 6:10 pm 2007
David Chinner
Re: [patch 00/19] Page cache: Replace PAGE_CACHE_xx with ...
Reviewed-by: Dave Chinner <dgc@sgi.com> -- Dave Chinner Principal Engineer SGI Australian Software Group -
Nov 28, 9:20 pm 2007
Andrew Morton Nov 29, 1:29 am 2007
Jörn
Re: [RFC][PATCH] Implement SEEK_HOLE/SEEK_DATA
That could work. There really isn't a reason for any application to It has the advantage of being easy to use. My completely untested attempt at a copy loop is just 14 lines. Add some error handling and it should still be quite small. off_t data_ofs, hole_ofs; long count; for (data_ofs = hole_ofs = 0; ; ) { if (data_ofs >= hole_ofs) { data_ofs = llseek(in_fd, data_ofs, SEEK_DATA); hole_ofs = llseek(in_fd, data_ofs, SEEK_HOLE); } count = splice(in_fd, &data_ofs, out_fd, ...
Nov 28, 9:14 pm 2007
Nicholas Miell
Re: [RFC][PATCH] Implement SEEK_HOLE/SEEK_DATA
I'd have to reread the original proposal, but I remember FIEMAP as being a generalized way of getting information about a files extents. I think the original proposal only dealt with mapping file offsets to physical extents, but IIRC the interface was flexible enough to implement a "where are the holes" request. Regardless, SEEK_HOLE/SEEK_DATA being a better suited interface for the needs of logfs doesn't make it the best interface for that need. -- Nicholas Miell ...
Nov 28, 5:06 pm 2007
Jörn
Re: [RFC][PATCH] Implement SEEK_HOLE/SEEK_DATA
I'm not sure we are looking for the best interface. A significant improvement without significant drawbacks would be enough for me. Having to provide "physical extends" complete with device offsets would be a significant drawback. Even if such an interface may have greater advantages under ideal circumstances. Jörn -- He who knows others is wise. He who knows himself is enlightened. -- Lao Tsu -
Nov 28, 8:07 pm 2007
Andreas Dilger
Re: [RFC][PATCH] Implement SEEK_HOLE/SEEK_DATA
The FIEMAP interface in some ways well suited to your needs, because it uses byte offsets instead of FIBMAP, which uses block offsets. I now see that one hole in the specification is that your physical extent is not the same length as the logical extent that the data represents. I'm not sure that is in itself a reason not to use FIEMAP. There is already a provision for logical extents that do not map directly to the physical layout (i.e. FIEMAP_EXTENT_NO_DIRECT flag on the extent). In the ...
Nov 28, 8:27 pm 2007
previous daytodaynext day
November 28, 2007November 29, 2007November 30, 2007