| From | Subject | Date |
|---|---|---|
| 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 | Re: [patch 19/19] Use page_cache_xxx in drivers/block/rd.c
page_cache_shift
Cheers,
Fengguang
-
| 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 | Re: [patch 00/19] Page cache: Replace PAGE_CACHE_xx with ...
thanks ;) I'll merge version 2..
-
| 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 day | today | next day |
|---|---|---|
| November 28, 2007 | November 29, 2007 | November 30, 2007 |
