- 31 Mar, 2009 1 commit
-
-
Theodore Ts'o authored
Add basic sysfs support so that information about the mounted filesystem and various tuning parameters can be accessed via /sys/fs/ext4/<dev>/*. Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
- 01 Mar, 2009 1 commit
-
-
Theodore Ts'o authored
Add a new superblock value which tracks the lifetime amount of writes to the filesystem. This is useful in estimating the amount of wear on solid state drives (SSD's) caused by writes to the filesystem. Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
- 15 Feb, 2009 1 commit
-
-
Pekka Enberg authored
As spotted by kmemtrace, struct ext4_sb_info is 17664 bytes on 64-bit which makes it a very bad fit for SLAB allocators. The culprit of the wasted memory is ->s_blockgroup_lock which can be as big as 16 KB when NR_CPUS >= 32. To fix that, allocate ->s_blockgroup_lock, which fits nicely in a order 2 page in the worst case, separately. This shinks down struct ext4_sb_info enough to fit a 2 KB slab cache so now we allocate 16 KB + 2 KB instead of 32 KB saving 14 KB of memory. Acked-by:
Andreas Dilger <adilger@sun.com> Signed-off-by:
Pekka Enberg <penberg@cs.helsinki.fi> Cc: <linux-ext4@vger.kernel.org> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
- 06 Feb, 2009 1 commit
-
-
Mike Snitzer authored
Remove some leftovers from when the old block allocator was removed (c2ea3fde ). ext4_sb_info is now a bit lighter. Also remove a dangling read_block_bitmap() prototype. Signed-off-by:
Mike Snitzer <snitzer@gmail.com> Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
- 04 Jan, 2009 2 commits
-
-
Pekka Enberg authored
As suggested by Andreas Dilger, introduce a bgl_lock_ptr() helper in <linux/blockgroup_lock.h> and add separate sb_bgl_lock() helpers to filesystem specific header files to break the hidden dependency to struct ext[234]_sb_info. Also, while at it, convert the macros to static inlines to try make up for all the times I broke Andrew Morton's tree. Acked-by:
Andreas Dilger <adilger@sun.com> Signed-off-by:
Pekka Enberg <penberg@cs.helsinki.fi> Cc: <linux-ext4@vger.kernel.org> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
Theodore Ts'o authored
Add new mount options, min_batch_time and max_batch_time, which controls how long the jbd2 layer should wait for additional filesystem operations to get batched with a synchronous write transaction. Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
- 17 Dec, 2008 1 commit
-
-
Yasunori Goto authored
I chased the cause of following ext4 oops report which is tested on ia64 box. http://bugzilla.kernel.org/show_bug.cgi?id=12018 The cause is the size of s_mb_maxs array that is defined as "unsigned short" in ext4_sb_info structure. If the file system's block size is 8k or greater, an unsigned short is not wide enough to contain the value fs->blocksize << 3. Signed-off-by:
Yasunori Goto <y-goto@jp.fujitsu.com> Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu> Cc: Li Zefan <lizf@cn.fujitsu.com> Cc: Miao Xie <miaox@cn.fujitsu.com> Cc: stable@kernel.org
-
- 28 Oct, 2008 1 commit
-
-
Theodore Ts'o authored
The original ext3 hash algorithms assumed that variables of type char were signed, as God and K&R intended. Unfortunately, this assumption is not true on some architectures. Userspace support for marking filesystems with non-native signed/unsigned chars was added two years ago, but the kernel-side support was never added (until now). Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
- 17 Oct, 2008 1 commit
-
-
Theodore Ts'o authored
The multiblock allocator needs to be able to release blocks (and issue a blkdev discard request) when the transaction which freed those blocks is committed. Previously this was done via a polling mechanism when blocks are allocated or freed. A much better way of doing things is to create a jbd2 callback function and attaching the list of blocks to be freed directly to the transaction structure. Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
- 10 Oct, 2008 2 commits
-
-
Theodore Ts'o authored
Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
Theodore Ts'o authored
With modern hard drives, reading 64k takes roughly the same time as reading a 4k block. So request readahead for adjacent inode table blocks to reduce the time it takes when iterating over directories (especially when doing this in htree sort order) in a cold cache case. With this patch, the time it takes to run "git status" on a kernel tree after flushing the caches via "echo 3 > /proc/sys/vm/drop_caches" is reduced by 21%. Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
- 23 Sep, 2008 2 commits
-
-
Theodore Ts'o authored
Previously mballoc created a separate set of functions for each proc file. This combines the tunables into a single set of functions which gets used for all of the per-superblock proc files, saving approximately 2k of compiled object code. Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
Theodore Ts'o authored
...and into the core setup/teardown code in fs/ext4/super.c so that other parts of ext4 can define tuning parameters. Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
- 10 Oct, 2008 1 commit
-
-
Aneesh Kumar K.V authored
This patch adds dirty block accounting using percpu_counters. Delayed allocation block reservation is now done by updating dirty block counter. In a later patch we switch to non delalloc mode if the filesystem free blocks is greater than 150% of total filesystem dirty blocks Signed-off-by:
Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Mingming Cao<cmm@us.ibm.com> Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
- 09 Sep, 2008 1 commit
-
-
Theodore Ts'o authored
Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
- 11 Jul, 2008 2 commits
-
-
Jose R. Santos authored
This patch mostly controls the way inode are allocated in order to make ialloc aware of flex_bg block group grouping. It achieves this by bypassing the Orlov allocator when block group meta-data are packed toghether through mke2fs. Since the impact on the block allocator is minimal, this patch should have little or no effect on other block allocation algorithms. By controlling the inode allocation, it can basically control where the initial search for new block begins and thus indirectly manipulate the block allocator. This allocator favors data and meta-data locality so the disk will gradually be filled from block group zero upward. This helps improve performance by reducing seek time. Since the group of inode tables within one flex_bg are treated as one giant inode table, uninitialized block groups would not need to partially initialize as many inode table as with Orlov which would help fsck time as the filesystem usage goes up. Signed-off-by:
Jose R. Santos <jrs@us.ibm.com> Signed-off-by:
Valerie Clement <valerie.clement@bull.net> Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
Shen Feng authored
Change second/third to fourth. Signed-off-by:
Shen Feng <shen@cn.fujitsu.com> Signed-off-by:
Mingming Cao <cmm@us.ibm.com> Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
- 29 Apr, 2008 1 commit
-
-
Christoph Hellwig authored
Move ext4 headers out of include/linux. This is just the trivial move, there's some more thing that could be done later. Signed-off-by:
Christoph Hellwig <hch@lst.de> Signed-off-by:
Mingming Cao <cmm@us.ibm.com> Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
- 29 Jan, 2008 3 commits
-
-
Alex Tomas authored
Signed-off-by:
Alex Tomas <alex@clusterfs.com> Signed-off-by:
Andreas Dilger <adilger@clusterfs.com> Signed-off-by:
Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by:
Eric Sandeen <sandeen@redhat.com> Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
Eric Sandeen authored
Calculate & store the max offset for bitmapped files, and catch too-large seeks, truncates, and writes in ext4, shortening or rejecting as appropriate. Signed-off-by:
Eric Sandeen <sandeen@redhat.com>
-
Avantika Mathur authored
In many places variables for block group are of type int, which limits the maximum number of block groups to 2^31. Each block group can have up to 2^15 blocks, with a 4K block size, and the max filesystem size is limited to 2^31 * (2^15 * 2^12) = 2^58 -- or 256 PB This patch introduces a new type ext4_group_t, of type unsigned long, to represent block group numbers in ext4. All occurrences of block group variables are converted to type ext4_group_t. Signed-off-by:
Avantika Mathur <mathur@us.ibm.com>
-
- 17 Oct, 2007 2 commits
-
-
Coly Li authored
Fragment support in ext2/3/4 was never implemented, and it probably will never be implemented. So remove it from ext4. Signed-off-by:
Coly Li <coyli@suse.de> Acked-by:
Andreas Dilger <adilger@clusterfs.com> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
Miklos Szeredi authored
Signed-off-by:
Miklos Szeredi <mszeredi@suse.cz> Cc: <linux-ext4@vger.kernel.org> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- 18 Jul, 2007 2 commits
-
-
Kalpak Shah authored
This patch adds nanosecond timestamps for ext4. This involves adding *time_extra fields to the ext4_inode to extend the timestamps to 64-bits. Creation time is also added by this patch. These extended fields will fit into an inode if the filesystem was formatted with large inodes (-I 256 or larger) and there are currently no EAs consuming all of the available space. For new inodes we always reserve enough space for the kernel's known extended fields, but for inodes created with an old kernel this might not have been the case. So this patch also adds the EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE feature flag(ro-compat so that older kernels can't create inodes with a smaller extra_isize). which indicates if the fields fitting inside s_min_extra_isize are available or not. If the expansion of inodes if unsuccessful then this feature will be disabled. This feature is only enabled if requested by the sysadmin. None of the extended inode fields is critical for correct filesystem operation. Signed-off-by:
Andreas Dilger <adilger@clusterfs.com> Signed-off-by:
Kalpak Shah <kalpak@clusterfs.com> Signed-off-by:
Eric Sandeen <sandeen@redhat.com> Signed-off-by:
Dave Kleikamp <shaggy@linux.vnet.ibm.com> Signed-off-by:
Mingming Cao <cmm@us.ibm.com> Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
Jose R. Santos authored
When the JBD code was forked to create the new JBD2 code base, the references to CONFIG_JBD_DEBUG where never changed to CONFIG_JBD2_DEBUG. This patch fixes that. Signed-off-by:
Jose R. Santos <jrs@us.ibm.com> Signed-off-by:
"Theodore Ts'o" <tytso@mit.edu>
-
- 16 Jul, 2007 1 commit
-
-
Badari Pulavarty authored
This is a patch that speeds up statfs. It is very simple - the "overhead" calculation, which takes a huge amount of time for large filesystems, never changes unless the size of the filesystem itself changes. That means we can store it in memory and only recalculate if the filesystem has been resized (almost never). It also fixes a minor problem that we never update the on-disk superblock free blocks/inodes counts until the filesystem is unmounted. While not fatal, we may as well update that on disk when we have the information, and it makes things like debugfs and dumpe2fs report a bit more accurate info. Signed-off-by:
Badari Pulavarty <pbadari@us.ibm.com> Signed-off-by:
Andreas Dilger <adilger@clusterfs.com> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- 11 Oct, 2006 4 commits
-
-
Alexandre Ratchov authored
make block group descriptor larger. Signed-off-by:
Alexandre Ratchov <alexandre.ratchov@bull.net> Signed-off-by:
Dave Kleikamp <shaggy@austin.ibm.com> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Alex Tomas authored
On disk extents format: /* * this is extent on-disk structure * it's used at the bottom of the tree */ struct ext3_extent { __le32 ee_block; /* first logical block extent covers */ __le16 ee_len; /* number of blocks covered by extent */ __le16 ee_start_hi; /* high 16 bits of physical block */ __le32 ee_start; /* low 32 bigs of physical block */ }; Signed-off-by:
Alex Tomas <alex@clusterfs.com> Signed-off-by:
Dave Kleikamp <shaggy@austin.ibm.com> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Mingming Cao authored
Mingming Cao originally did this work, and Shaggy reproduced it using some scripts from her. Signed-off-by:
Mingming Cao <cmm@us.ibm.com> Signed-off-by:
Dave Kleikamp <shaggy@austin.ibm.com> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Dave Kleikamp authored
Start of the ext4 patch series. See Documentation/filesystems/ext4.txt for details. This is a simple copy of the files in fs/ext3 to fs/ext4 and /usr/incude/linux/ext3* to /usr/include/ex4* Signed-off-by:
Dave Kleikamp <shaggy@austin.ibm.com> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 16 Apr, 2005 1 commit
-
-
Linus Torvalds authored
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
-