Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 115593
b: refs/heads/master
c: 2e66896
h: refs/heads/master
i:
  115591: 0336321
v: v3
  • Loading branch information
Ian Armstrong authored and Mauro Carvalho Chehab committed Oct 17, 2008
1 parent 4e0a6f5 commit 8a9106c
Show file tree
Hide file tree
Showing 17 changed files with 345 additions and 328 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 58617d5e59663d2edea03bd03cb74279827611bb
refs/heads/master: 2e668962a54b64f3daffb8eef3ca538e25324d1a
32 changes: 17 additions & 15 deletions trunk/Documentation/filesystems/ext4.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,19 @@
Ext4 Filesystem
===============

Ext4 is an an advanced level of the ext3 filesystem which incorporates
scalability and reliability enhancements for supporting large filesystems
(64 bit) in keeping with increasing disk capacities and state-of-the-art
feature requirements.
This is a development version of the ext4 filesystem, an advanced level
of the ext3 filesystem which incorporates scalability and reliability
enhancements for supporting large filesystems (64 bit) in keeping with
increasing disk capacities and state-of-the-art feature requirements.

Mailing list: linux-ext4@vger.kernel.org
Web site: http://ext4.wiki.kernel.org
Mailing list: linux-ext4@vger.kernel.org


1. Quick usage instructions:
===========================

Note: More extensive information for getting started with ext4 can be
found at the ext4 wiki site at the URL:
http://ext4.wiki.kernel.org/index.php/Ext4_Howto

- Compile and install the latest version of e2fsprogs (as of this
writing version 1.41.3) from:
writing version 1.41) from:

http://sourceforge.net/project/showfiles.php?group_id=2406

Expand All @@ -41,9 +36,11 @@ Note: More extensive information for getting started with ext4 can be

# mke2fs -t ext4 /dev/hda1

Or to configure an existing ext3 filesystem to support extents:
Or configure an existing ext3 filesystem to support extents and set
the test_fs flag to indicate that it's ok for an in-development
filesystem to touch this filesystem:

# tune2fs -O extents /dev/hda1
# tune2fs -O extents -E test_fs /dev/hda1

If the filesystem was created with 128 byte inodes, it can be
converted to use 256 byte for greater efficiency via:
Expand Down Expand Up @@ -107,8 +104,8 @@ exist yet so I'm not sure they're in the near-term roadmap.
The big performance win will come with mballoc, delalloc and flex_bg
grouping of bitmaps and inode tables. Some test results available here:

- http://www.bullopensource.org/ext4/20080818-ffsb/ffsb-write-2.6.27-rc1.html
- http://www.bullopensource.org/ext4/20080818-ffsb/ffsb-readwrite-2.6.27-rc1.html
- http://www.bullopensource.org/ext4/20080530/ffsb-write-2.6.26-rc2.html
- http://www.bullopensource.org/ext4/20080530/ffsb-readwrite-2.6.26-rc2.html

3. Options
==========
Expand Down Expand Up @@ -217,6 +214,9 @@ noreservation
bsddf (*) Make 'df' act like BSD.
minixdf Make 'df' act like Minix.

check=none Don't do extra checking of bitmaps on mount.
nocheck

debug Extra debugging information is sent to syslog.

errors=remount-ro(*) Remount the filesystem read-only on an error.
Expand Down Expand Up @@ -253,6 +253,8 @@ nobh (a) cache disk block mapping information
"nobh" option tries to avoid associating buffer
heads (supported only for "writeback" mode).

mballoc (*) Use the multiple block allocator for block allocation
nomballoc disabled multiple block allocator for block allocation.
stripe=n Number of filesystem blocks that mballoc will try
to use for allocation size and alignment. For RAID5/6
systems this should be the number of data
Expand Down
15 changes: 8 additions & 7 deletions trunk/drivers/media/video/ivtv/ivtv-fileops.c
Original file line number Diff line number Diff line change
Expand Up @@ -600,13 +600,14 @@ ssize_t ivtv_v4l2_write(struct file *filp, const char __user *user_buf, size_t c
since we may get here before the stream has been fully set-up */
if (mode == OUT_YUV && s->q_full.length == 0 && itv->dma_data_req_size) {
while (count >= itv->dma_data_req_size) {
if (!ivtv_yuv_udma_stream_frame (itv, (void __user *)user_buf)) {
bytes_written += itv->dma_data_req_size;
user_buf += itv->dma_data_req_size;
count -= itv->dma_data_req_size;
} else {
break;
}
rc = ivtv_yuv_udma_stream_frame(itv, (void __user *)user_buf);

if (rc < 0)
return rc;

bytes_written += itv->dma_data_req_size;
user_buf += itv->dma_data_req_size;
count -= itv->dma_data_req_size;
}
if (count == 0) {
IVTV_DEBUG_HI_FILE("Wrote %d bytes to %s (%d)\n", bytes_written, s->name, s->q_full.bytesused);
Expand Down
2 changes: 1 addition & 1 deletion trunk/fs/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ config EXT4_FS
filesystem initially.

To compile this file system support as a module, choose M here. The
module will be called ext4.
module will be called ext4dev.

If unsure, say N.

Expand Down
2 changes: 1 addition & 1 deletion trunk/fs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ obj-$(CONFIG_DLM) += dlm/
# Do not add any filesystems before this line
obj-$(CONFIG_REISERFS_FS) += reiserfs/
obj-$(CONFIG_EXT3_FS) += ext3/ # Before ext2 so root fs can be ext3
obj-$(CONFIG_EXT4_FS) += ext4/ # Before ext2 so root fs can be ext4
obj-$(CONFIG_EXT4_FS) += ext4/ # Before ext2 so root fs can be ext4dev
obj-$(CONFIG_JBD) += jbd/
obj-$(CONFIG_JBD2) += jbd2/
obj-$(CONFIG_EXT2_FS) += ext2/
Expand Down
12 changes: 2 additions & 10 deletions trunk/fs/ext4/balloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -568,16 +568,8 @@ void ext4_free_blocks(handle_t *handle, struct inode *inode,

/* this isn't the right place to decide whether block is metadata
* inode.c/extents.c knows better, but for safety ... */
if (S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode))
metadata = 1;

/* We need to make sure we don't reuse
* block released untill the transaction commit.
* writeback mode have weak data consistency so
* don't force data as metadata when freeing block
* for writeback mode.
*/
if (metadata == 0 && !ext4_should_writeback_data(inode))
if (S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode) ||
ext4_should_journal_data(inode))
metadata = 1;

sb = inode->i_sb;
Expand Down
1 change: 1 addition & 0 deletions trunk/fs/ext4/ext4.h
Original file line number Diff line number Diff line change
Expand Up @@ -511,6 +511,7 @@ do { \
/*
* Mount flags
*/
#define EXT4_MOUNT_CHECK 0x00001 /* Do mount-time checks */
#define EXT4_MOUNT_OLDALLOC 0x00002 /* Don't use the new Orlov allocator */
#define EXT4_MOUNT_GRPID 0x00004 /* Create files with directory's group */
#define EXT4_MOUNT_DEBUG 0x00008 /* Some debugging messages */
Expand Down
3 changes: 3 additions & 0 deletions trunk/fs/ext4/ext4_sb.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,9 @@ struct ext4_sb_info {
struct inode *s_buddy_cache;
long s_blocks_reserved;
spinlock_t s_reserve_lock;
struct list_head s_active_transaction;
struct list_head s_closed_transaction;
struct list_head s_committed_transaction;
spinlock_t s_md_lock;
tid_t s_last_transaction;
unsigned short *s_mb_offsets, *s_mb_maxs;
Expand Down
Loading

0 comments on commit 8a9106c

Please sign in to comment.