From: Miklos Szeredi <[email protected]>
Use max not min to enforce a lower limit on the max I/O size.
This bug was introduced by
commit e5d9a0df07484d6d191756878c974e4307fb24ce
Author: Miklos Szeredi <[email protected]>
Date: Wed Apr 30 00:54:44 2008 -0700
fuse: fix max i/o size calculation
Thanks to Brian Wang for noticing.
Reported-by: Brian Wang <[email protected]>
CC: Szabolcs Szakacsits <[email protected]>
Signed-off-by: Miklos Szeredi <[email protected]>
---
fs/fuse/inode.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: linux-2.6/fs/fuse/inode.c
===================================================================
--- linux-2.6.orig/fs/fuse/inode.c 2008-06-17 17:55:38.000000000 +0200
+++ linux-2.6/fs/fuse/inode.c 2008-06-17 17:55:48.000000000 +0200
@@ -591,7 +591,7 @@ static void process_init_reply(struct fu
fc->bdi.ra_pages = min(fc->bdi.ra_pages, ra_pages);
fc->minor = arg->minor;
fc->max_write = arg->minor < 5 ? 4096 : arg->max_write;
- fc->max_write = min_t(unsigned, 4096, fc->max_write);
+ fc->max_write = max_t(unsigned, 4096, fc->max_write);
fc->conn_init = 1;
}
fuse_put_request(fc, req);
@@ -667,7 +667,7 @@ static int fuse_fill_super(struct super_
fc->flags = d.flags;
fc->user_id = d.user_id;
fc->group_id = d.group_id;
- fc->max_read = min_t(unsigned, 4096, d.max_read);
+ fc->max_read = max_t(unsigned, 4096, d.max_read);
/* Used by get_root_inode() */
sb->s_fs_info = fc;
> > From: Miklos Szeredi <[email protected]>
> >
> > Use max not min to enforce a lower limit on the max I/O size.
>
> Big write is ok now, thanks. NTFS-3G in-memory write performance seems to
> be 6x better on a T9300 and quick tests seem to show that it's at least as
> fast as ext3 in-memory writes (but this needs more testing, etc).
>
> However the max write size seems to be limited to 128kB. Is this
> intentional?
Yes, that's due to another limit (max 32 pages per request).
Miklos
On Tue, 17 Jun 2008, Miklos Szeredi wrote:
> From: Miklos Szeredi <[email protected]>
>
> Use max not min to enforce a lower limit on the max I/O size.
Big write is ok now, thanks. NTFS-3G in-memory write performance seems to
be 6x better on a T9300 and quick tests seem to show that it's at least as
fast as ext3 in-memory writes (but this needs more testing, etc).
However the max write size seems to be limited to 128kB. Is this
intentional? If yes then
Acked-by: Szabolcs Szakacsits <[email protected]>
Szaka
> This bug was introduced by
>
> commit e5d9a0df07484d6d191756878c974e4307fb24ce
> Author: Miklos Szeredi <[email protected]>
> Date: Wed Apr 30 00:54:44 2008 -0700
>
> fuse: fix max i/o size calculation
>
> Thanks to Brian Wang for noticing.
>
> Reported-by: Brian Wang <[email protected]>
> CC: Szabolcs Szakacsits <[email protected]>
> Signed-off-by: Miklos Szeredi <[email protected]>
> ---
> fs/fuse/inode.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> Index: linux-2.6/fs/fuse/inode.c
> ===================================================================
> --- linux-2.6.orig/fs/fuse/inode.c 2008-06-17 17:55:38.000000000 +0200
> +++ linux-2.6/fs/fuse/inode.c 2008-06-17 17:55:48.000000000 +0200
> @@ -591,7 +591,7 @@ static void process_init_reply(struct fu
> fc->bdi.ra_pages = min(fc->bdi.ra_pages, ra_pages);
> fc->minor = arg->minor;
> fc->max_write = arg->minor < 5 ? 4096 : arg->max_write;
> - fc->max_write = min_t(unsigned, 4096, fc->max_write);
> + fc->max_write = max_t(unsigned, 4096, fc->max_write);
> fc->conn_init = 1;
> }
> fuse_put_request(fc, req);
> @@ -667,7 +667,7 @@ static int fuse_fill_super(struct super_
> fc->flags = d.flags;
> fc->user_id = d.user_id;
> fc->group_id = d.group_id;
> - fc->max_read = min_t(unsigned, 4096, d.max_read);
> + fc->max_read = max_t(unsigned, 4096, d.max_read);
>
> /* Used by get_root_inode() */
> sb->s_fs_info = fc;
>
--
NTFS-3G: http://ntfs-3g.org