[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100803211814.GA4436@pitr.home.jan>
Date: Tue, 3 Aug 2010 23:18:16 +0200
From: Jan Andres <jandres@....net>
To: linux-kernel@...r.kernel.org
Cc: linux-fsdevel@...r.kernel.org
Subject: [PATCH] isofs: Fix lseek() to position beyond 4 GB
isofs supports files larger than 4 GB by using multi-extent files.
However an lseek() to a position beyond 4 GB in such a file will
fail with EINVAL, because s_maxbytes in the isofs superblock is
initialized to 2^32-1, and generic_file_llseek() checks against
that value.
I therefore suggest increasing the value of s_maxbytes to have
full support for large files in isofs. With multi-extent files, file
size is only limited by the maximum size of the file system (8 TB),
so this seems a reasonable value for s_maxbytes.
Signed-off-by: Jan Andres <jandres@....net>
--- linux-2.6.35-j7/fs/isofs/inode.c.orig 2010-08-02 00:11:14.000000000 +0200
+++ linux-2.6.35-j7/fs/isofs/inode.c 2010-08-03 22:54:38.000000000 +0200
@@ -722,7 +722,12 @@ root_found:
}
s->s_magic = ISOFS_SUPER_MAGIC;
- s->s_maxbytes = 0xffffffff; /* We can handle files up to 4 GB */
+
+ /*
+ * With multi-extent files, file size is only limited by the maximum
+ * size of a file system, which is 8 TB.
+ */
+ s->s_maxbytes = 0x80000000000;
/*
* The CDROM is read-only, has no nodes (devices) on it, and since
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists