<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs/ext3, branch v3.13</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/fs/ext3?h=v3.13</id>
<link rel='self' href='https://git.amat.us/linux/atom/fs/ext3?h=v3.13'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-11-13T06:25:47Z</updated>
<entry>
<title>Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs</title>
<updated>2013-11-13T06:25:47Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-11-13T06:25:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a30124539b2641c5b3551193af7d21a6fc61ba98'/>
<id>urn:sha1:a30124539b2641c5b3551193af7d21a6fc61ba98</id>
<content type='text'>
Pull ext[23], udf and quota fixes from Jan Kara:
 "Assorted fixes in quota, ext2, ext3 &amp; udf.

  Probably the most important is a fix of fs corruption issue in ext2
  XIP support (OTOH xip is rarely used)"

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
  ext2: Fix fs corruption in ext2_get_xip_mem()
  quota: info leak in quota_getquota()
  jbd: Revert "jbd: remove dependency on __GFP_NOFAIL"
  udf: fix for pathetic mount times in case of invalid file system
  ext3: Count journal as bsddf overhead in ext3_statfs
</content>
</entry>
<entry>
<title>ext3: Count journal as bsddf overhead in ext3_statfs</title>
<updated>2013-10-16T12:29:17Z</updated>
<author>
<name>Eric Sandeen</name>
<email>sandeen@redhat.com</email>
</author>
<published>2013-10-15T23:45:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2046fd1873886e8c774d7c1b0961624c164e7db2'/>
<id>urn:sha1:2046fd1873886e8c774d7c1b0961624c164e7db2</id>
<content type='text'>
ext4 counts journal space as bsddf overhead, but ext3 does not.

For some reason when I patched ext4 I thought I should leave
ext3 alone, but frankly it makes more sense to fix it, I think.

Otherwise we get inconsistent behavior from ext3 under ext3.ko,
and ext3 under ext4.ko, which is not at all desirable...

This is testable by xfstests shared/289, though it will need
modification because it currently special-cases ext3.

Signed-off-by: Eric Sandeen &lt;sandeen@redhat.com&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>ext[34]: fix double put in tmpfile</title>
<updated>2013-10-15T16:14:06Z</updated>
<author>
<name>Miklos Szeredi</name>
<email>mszeredi@suse.cz</email>
</author>
<published>2013-10-10T14:48:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=43ae9e3fc70ca0057ae0a24ef5eedff05e3fae06'/>
<id>urn:sha1:43ae9e3fc70ca0057ae0a24ef5eedff05e3fae06</id>
<content type='text'>
d_tmpfile() already swallowed the inode ref.

Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs</title>
<updated>2013-09-06T16:06:02Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-09-06T16:06:02Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ec0ad730802173ec17e942f4b652a1819b1025b2'/>
<id>urn:sha1:ec0ad730802173ec17e942f4b652a1819b1025b2</id>
<content type='text'>
Pull ext3, reiserfs, udf &amp; isofs fixes from Jan Kara:
 "The contains a bunch of ext3 cleanups and minor improvements, major
  reiserfs locking changes which should hopefully fix deadlocks
  introduced by BKL removal, and udf/isofs changes to refuse mounting fs
  rw instead of mounting it ro automatically which makes eject button
  work as expected for all media (see the changelog for why userspace
  should be ok with this change)"

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
  jbd: use a single printk for jbd_debug()
  reiserfs: locking, release lock around quota operations
  reiserfs: locking, handle nested locks properly
  reiserfs: locking, push write lock out of xattr code
  jbd: relocate assert after state lock in journal_commit_transaction()
  udf: Refuse RW mount of the filesystem instead of making it RO
  udf: Standardize return values in mount sequence
  isofs: Refuse RW mount of the filesystem instead of making it RO
  ext3: allow specifying external journal by pathname mount option
  jbd: remove unneeded semicolon
</content>
</entry>
<entry>
<title>ext4: Fix misspellings using 'codespell' tool</title>
<updated>2013-08-28T18:40:12Z</updated>
<author>
<name>Anatol Pomozov</name>
<email>anatol.pomozov@gmail.com</email>
</author>
<published>2013-08-28T18:40:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=70261f568f3c08552f034742e3d5cb78c3877766'/>
<id>urn:sha1:70261f568f3c08552f034742e3d5cb78c3877766</id>
<content type='text'>
Signed-off-by: Anatol Pomozov &lt;anatol.pomozov@gmail.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext3: allow specifying external journal by pathname mount option</title>
<updated>2013-07-31T20:11:15Z</updated>
<author>
<name>Eric Sandeen</name>
<email>sandeen@redhat.com</email>
</author>
<published>2013-07-31T19:33:00Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cf7eff4666629de006c5ed78de79e40f483c3b06'/>
<id>urn:sha1:cf7eff4666629de006c5ed78de79e40f483c3b06</id>
<content type='text'>
It's always been a hassle that if an external journal's
device number changes, the filesystem won't mount.
And since boot-time enumeration can change, device number
changes aren't unusual.

The current mechanism to update the journal location is by
passing in a mount option w/ a new devnum, but that's a hassle;
it's a manual approach, fixing things after the fact.

Adding a mount option, "-o journal_path=/dev/$DEVICE" would
help, since then we can do i.e.

# mount -o journal_path=/dev/disk/by-label/$JOURNAL_LABEL ...

and it'll mount even if the devnum has changed, as shown here:

# losetup /dev/loop0 journalfile
# mke2fs -L mylabel-journal -O journal_dev /dev/loop0
# mkfs.ext3 -L mylabel -J device=/dev/loop0 /dev/sdb1

Change the journal device number:

# losetup -d /dev/loop0
# losetup /dev/loop1 journalfile

And today it will fail:

# mount /dev/sdb1 /mnt/test
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

# dmesg | tail -n 1
[17343.240702] EXT3-fs (sdb1): error: couldn't read superblock of external journal

But with this new mount option, we can specify the new path:

# mount -o journal_path=/dev/loop1 /dev/sdb1 /mnt/test
#

(which does update the encoded device number, incidentally):

# umount /dev/sdb1
# dumpe2fs -h /dev/sdb1 | grep "Journal device"
dumpe2fs 1.41.12 (17-May-2010)
Journal device:	          0x0701

But best of all we can just always mount by journal-path, and
it'll always work:

# mount -o journal_path=/dev/disk/by-label/mylabel-journal /dev/sdb1 /mnt/test
#

So the journal_path option can be specified in fstab, and as long as
the disk is available somewhere, and findable by label (or by UUID),
we can mount.

Signed-off-by: Eric Sandeen &lt;sandeen@redhat.com&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>ext3: fix a BUG when opening a file with O_TMPFILE flag</title>
<updated>2013-07-21T02:03:20Z</updated>
<author>
<name>Zheng Liu</name>
<email>wenqing.lz@taobao.com</email>
</author>
<published>2013-07-21T02:03:20Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=dda5690defe4af62ee120f055e98e40d97e4c760'/>
<id>urn:sha1:dda5690defe4af62ee120f055e98e40d97e4c760</id>
<content type='text'>
When we try to open a file with O_TMPFILE flag, we will trigger a bug.
The root cause is that in ext4_orphan_add() we check -&gt;i_nlink == 0 and
this check always fails because we set -&gt;i_nlink = 1 in
inode_init_always().  We can use the following program to trigger it:

int main(int argc, char *argv[])
{
	int fd;

	fd = open(argv[1], O_TMPFILE, 0666);
	if (fd &lt; 0) {
		perror("open ");
		return -1;
	}
	close(fd);
	return 0;
}

The oops message looks like this:

kernel: kernel BUG at fs/ext3/namei.c:1992!
kernel: invalid opcode: 0000 [#1] SMP
kernel: Modules linked in: ext4 jbd2 crc16 cpufreq_ondemand ipv6 dm_mirror dm_region_hash dm_log dm_mod parport_pc parport serio_raw sg dcdbas pcspkr i2c_i801 ehci_pci ehci_hcd button acpi_cpufreq mperf e1000e ptp pps_core ttm drm_kms_helper drm hwmon i2c_algo_bit i2c_core ext3 jbd sd_mod ahci libahci libata scsi_mod uhci_hcd
kernel: CPU: 0 PID: 2882 Comm: tst_tmpfile Not tainted 3.11.0-rc1+ #4
kernel: Hardware name: Dell Inc. OptiPlex 780 /0V4W66, BIOS A05 08/11/2010
kernel: task: ffff880112d30050 ti: ffff8801124d4000 task.ti: ffff8801124d4000
kernel: RIP: 0010:[&lt;ffffffffa00db5ae&gt;] [&lt;ffffffffa00db5ae&gt;] ext3_orphan_add+0x6a/0x1eb [ext3]
kernel: RSP: 0018:ffff8801124d5cc8  EFLAGS: 00010202
kernel: RAX: 0000000000000000 RBX: ffff880111510128 RCX: ffff8801114683a0
kernel: RDX: 0000000000000000 RSI: ffff880111510128 RDI: ffff88010fcf65a8
kernel: RBP: ffff8801124d5d18 R08: 0080000000000000 R09: ffffffffa00d3b7f
kernel: R10: ffff8801114683a0 R11: ffff8801032a2558 R12: 0000000000000000
kernel: R13: ffff88010fcf6800 R14: ffff8801032a2558 R15: ffff8801115100d8
kernel: FS:  00007f5d172b5700(0000) GS:ffff880117c00000(0000) knlGS:0000000000000000
kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
kernel: CR2: 00007f5d16df15d0 CR3: 0000000110b1d000 CR4: 00000000000407f0
kernel: Stack:
kernel: 000000000000000c ffff8801048a7dc8 ffff8801114685a8 ffffffffa00b80d7
kernel: ffff8801124d5e38 ffff8801032a2558 ffff88010ce24d68 0000000000000000
kernel: ffff88011146b300 ffff8801124d5d44 ffff8801124d5d78 ffffffffa00db7e1
kernel: Call Trace:
kernel: [&lt;ffffffffa00b80d7&gt;] ? journal_start+0x8c/0xbd [jbd]
kernel: [&lt;ffffffffa00db7e1&gt;] ext3_tmpfile+0xb2/0x13b [ext3]
kernel: [&lt;ffffffff821076f8&gt;] path_openat+0x11f/0x5e7
kernel: [&lt;ffffffff821c86b4&gt;] ? list_del+0x11/0x30
kernel: [&lt;ffffffff82065fa2&gt;] ?  __dequeue_entity+0x33/0x38
kernel: [&lt;ffffffff82107cd5&gt;] do_filp_open+0x3f/0x8d
kernel: [&lt;ffffffff82112532&gt;] ? __alloc_fd+0x50/0x102
kernel: [&lt;ffffffff820f9296&gt;] do_sys_open+0x13b/0x1cd
kernel: [&lt;ffffffff820f935c&gt;] SyS_open+0x1e/0x20
kernel: [&lt;ffffffff82398c02&gt;] system_call_fastpath+0x16/0x1b
kernel: Code: 39 c7 0f 85 67 01 00 00 0f b7 03 25 00 f0 00 00 3d 00 40 00 00 74 18 3d 00 80 00 00 74 11 3d 00 a0 00 00 74 0a 83 7b 48 00 74 04 &lt;0f&gt; 0b eb fe 49 8b 85 50 03 00 00 4c 89 f6 48 c7 c7 c0 99 0e a0
kernel: RIP  [&lt;ffffffffa00db5ae&gt;] ext3_orphan_add+0x6a/0x1eb [ext3]
kernel: RSP &lt;ffff8801124d5cc8&gt;

Here we couldn't call clear_nlink() directly because in d_tmpfile() we
will call inode_dec_link_count() to decrease -&gt;i_nlink.  So this commit
tries to call d_tmpfile() before ext4_orphan_add() to fix this problem.

Signed-off-by: Zheng Liu &lt;wenqing.lz@taobao.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Cc: Jan Kara &lt;jack@suse.cz&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs</title>
<updated>2013-07-09T19:08:43Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-07-09T19:08:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1f792dd1765e6f047ecd2d5f6a81f025b50d471a'/>
<id>urn:sha1:1f792dd1765e6f047ecd2d5f6a81f025b50d471a</id>
<content type='text'>
Pull ext3 fix and quota cleanup from Jan Kara:
 "A fix of ext3 error reporting from fsync and a quota cleanup"

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
  quota: Convert use of typedef ctl_table to struct ctl_table
  ext3: Fix fsync error handling after filesystem abort.
</content>
</entry>
<entry>
<title>ext3: Fix fsync error handling after filesystem abort.</title>
<updated>2013-07-04T17:22:55Z</updated>
<author>
<name>Dmitry Monakhov</name>
<email>dmonakhov@openvz.org</email>
</author>
<published>2013-05-28T09:19:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3df32196519d1556b8851b610ca1aa68c5b673d3'/>
<id>urn:sha1:3df32196519d1556b8851b610ca1aa68c5b673d3</id>
<content type='text'>
If filesystem was aborted we will return success
due to (sb-&gt;s_flags &amp; MS_RDONLY) which is incorrect and
results in data loss.
In order to handle fs abort correctly we have to check
fs state once we discover that it is in MS_RDONLY state

Test case: http://patchwork.ozlabs.org/patch/244297/
Changes from V1:
 - fix spelling
 - fix smp_rmb()/debug order

Signed-off-by: Dmitry Monakhov &lt;dmonakhov@openvz.org&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>mm: vmscan: take page buffers dirty and locked state into account</title>
<updated>2013-07-03T23:07:29Z</updated>
<author>
<name>Mel Gorman</name>
<email>mgorman@suse.de</email>
</author>
<published>2013-07-03T22:02:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b45972265f823ed01eae0867a176320071665787'/>
<id>urn:sha1:b45972265f823ed01eae0867a176320071665787</id>
<content type='text'>
Page reclaim keeps track of dirty and under writeback pages and uses it
to determine if wait_iff_congested() should stall or if kswapd should
begin writing back pages.  This fails to account for buffer pages that
can be under writeback but not PageWriteback which is the case for
filesystems like ext3 ordered mode.  Furthermore, PageDirty buffer pages
can have all the buffers clean and writepage does no IO so it should not
be accounted as congested.

This patch adds an address_space operation that filesystems may
optionally use to check if a page is really dirty or really under
writeback.  An implementation is provided for for buffer_heads is added
and used for block operations and ext3 in ordered mode.  By default the
page flags are obeyed.

Credit goes to Jan Kara for identifying that the page flags alone are
not sufficient for ext3 and sanity checking a number of ideas on how the
problem could be addressed.

Signed-off-by: Mel Gorman &lt;mgorman@suse.de&gt;
Cc: Johannes Weiner &lt;hannes@cmpxchg.org&gt;
Cc: Michal Hocko &lt;mhocko@suse.cz&gt;
Cc: Rik van Riel &lt;riel@redhat.com&gt;
Cc: KAMEZAWA Hiroyuki &lt;kamezawa.hiroyu@jp.fujitsu.com&gt;
Cc: Jiri Slaby &lt;jslaby@suse.cz&gt;
Cc: Valdis Kletnieks &lt;Valdis.Kletnieks@vt.edu&gt;
Cc: Zlatko Calusic &lt;zcalusic@bitsync.net&gt;
Cc: dormando &lt;dormando@rydia.net&gt;
Cc: Trond Myklebust &lt;trond.myklebust@fys.uio.no&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
</feed>
