<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs, branch v3.0.62</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/fs?h=v3.0.62</id>
<link rel='self' href='https://git.amat.us/linux/atom/fs?h=v3.0.62'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-02-04T00:21:37Z</updated>
<entry>
<title>fs/cifs/cifs_dfs_ref.c: fix potential memory leakage</title>
<updated>2013-02-04T00:21:37Z</updated>
<author>
<name>Cong Ding</name>
<email>dinggnu@gmail.com</email>
</author>
<published>2013-01-23T00:20:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=833a2e184ad1464cda69d569788e1faa37191f37'/>
<id>urn:sha1:833a2e184ad1464cda69d569788e1faa37191f37</id>
<content type='text'>
commit 10b8c7dff5d3633b69e77f57d404dab54ead3787 upstream.

When it goes to error through line 144, the memory allocated to *devname is
not freed, and the caller doesn't free it either in line 250. So we free the
memroy of *devname in function cifs_compose_mount_options() when it goes to
error.

Signed-off-by: Cong Ding &lt;dinggnu@gmail.com&gt;
Reviewed-by: Jeff Layton &lt;jlayton@redhat.com&gt;
Signed-off-by: Steve French &lt;smfrench@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ext4: init pagevec in ext4_da_block_invalidatepages</title>
<updated>2013-01-21T19:44:59Z</updated>
<author>
<name>Eric Sandeen</name>
<email>sandeen@redhat.com</email>
</author>
<published>2012-11-15T03:22:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=97765f30c49d3023a6dafe7c48c7e520fca441f8'/>
<id>urn:sha1:97765f30c49d3023a6dafe7c48c7e520fca441f8</id>
<content type='text'>
commit 66bea92c69477a75a5d37b9bfed5773c92a3c4b4 upstream.

ext4_da_block_invalidatepages is missing a pagevec_init(),
which means that pvec-&gt;cold contains random garbage.

This affects whether the page goes to the front or
back of the LRU when -&gt;cold makes it to
free_hot_cold_page()

Reviewed-by: Lukas Czerner &lt;lczerner@redhat.com&gt;
Reviewed-by: Carlos Maiolino &lt;cmaiolino@redhat.com&gt;
Signed-off-by: Eric Sandeen &lt;sandeen@redhat.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: CAI Qian &lt;caiqian@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>GFS2: Test bufdata with buffer locked and gfs2_log_lock held</title>
<updated>2013-01-17T16:44:12Z</updated>
<author>
<name>Benjamin Marzinski</name>
<email>bmarzins@redhat.com</email>
</author>
<published>2012-11-07T06:38:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d668f92bf357683de292ce7538fc7b1186354004'/>
<id>urn:sha1:d668f92bf357683de292ce7538fc7b1186354004</id>
<content type='text'>
commit 96e5d1d3adf56f1c7eeb07258f6a1a0a7ae9c489 upstream.

In gfs2_trans_add_bh(), gfs2 was testing if a there was a bd attached to the
buffer without having the gfs2_log_lock held. It was then assuming it would
stay attached for the rest of the function. However, without either the log
lock being held of the buffer locked, __gfs2_ail_flush() could detach bd at any
time.  This patch moves the locking before the test.  If there isn't a bd
already attached, gfs2 can safely allocate one and attach it before locking.
There is no way that the newly allocated bd could be on the ail list,
and thus no way for __gfs2_ail_flush() to detach it.

Signed-off-by: Benjamin Marzinski &lt;bmarzins@redhat.com&gt;
Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>epoll: prevent missed events on EPOLL_CTL_MOD</title>
<updated>2013-01-17T16:43:59Z</updated>
<author>
<name>Eric Wong</name>
<email>normalperson@yhbt.net</email>
</author>
<published>2013-01-01T21:20:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=93b40265d0c287271b19320574a76070d76d5a3b'/>
<id>urn:sha1:93b40265d0c287271b19320574a76070d76d5a3b</id>
<content type='text'>
commit 128dd1759d96ad36c379240f8b9463e8acfd37a1 upstream.

EPOLL_CTL_MOD sets the interest mask before calling f_op-&gt;poll() to
ensure events are not missed.  Since the modifications to the interest
mask are not protected by the same lock as ep_poll_callback, we need to
ensure the change is visible to other CPUs calling ep_poll_callback.

We also need to ensure f_op-&gt;poll() has an up-to-date view of past
events which occured before we modified the interest mask.  So this
barrier also pairs with the barrier in wq_has_sleeper().

This should guarantee either ep_poll_callback or f_op-&gt;poll() (or both)
will notice the readiness of a recently-ready/modified item.

This issue was encountered by Andreas Voellmy and Junchang(Jason) Wang in:
http://thread.gmane.org/gmane.linux.kernel/1408782/

Signed-off-by: Eric Wong &lt;normalperson@yhbt.net&gt;
Cc: Hans Verkuil &lt;hans.verkuil@cisco.com&gt;
Cc: Jiri Olsa &lt;jolsa@redhat.com&gt;
Cc: Jonathan Corbet &lt;corbet@lwn.net&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Davide Libenzi &lt;davidel@xmailserver.org&gt;
Cc: Hans de Goede &lt;hdegoede@redhat.com&gt;
Cc: Mauro Carvalho Chehab &lt;mchehab@infradead.org&gt;
Cc: David Miller &lt;davem@davemloft.net&gt;
Cc: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: Andreas Voellmy &lt;andreas.voellmy@yale.edu&gt;
Tested-by: "Junchang(Jason) Wang" &lt;junchang.wang@yale.edu&gt;
Cc: netdev@vger.kernel.org
Cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>udf: don't increment lenExtents while writing to a hole</title>
<updated>2013-01-17T16:43:58Z</updated>
<author>
<name>Namjae Jeon</name>
<email>namjae.jeon@samsung.com</email>
</author>
<published>2012-10-09T15:09:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cdfcbd8d74fdfd7a0d55330a1b60411b153ae71b'/>
<id>urn:sha1:cdfcbd8d74fdfd7a0d55330a1b60411b153ae71b</id>
<content type='text'>
commit fb719c59bdb4fca86ee1fd1f42ab3735ca12b6b2 upstream.

Incrementing lenExtents even while writing to a hole is bad
for performance as calls to udf_discard_prealloc and
udf_truncate_tail_extent would not return from start if
isize != lenExtents

Signed-off-by: Namjae Jeon &lt;namjae.jeon@samsung.com&gt;
Signed-off-by: Ashish Sangwan &lt;a.sangwan@samsung.com&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Shuah Khan &lt;shuah.khan@hp.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>udf: fix memory leak while allocating blocks during write</title>
<updated>2013-01-17T16:43:58Z</updated>
<author>
<name>Namjae Jeon</name>
<email>namjae.jeon@samsung.com</email>
</author>
<published>2012-10-09T15:08:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=de3ecca3e3d55f2bb3118839a8fd709362d55678'/>
<id>urn:sha1:de3ecca3e3d55f2bb3118839a8fd709362d55678</id>
<content type='text'>
commit 2fb7d99d0de3fd8ae869f35ab682581d8455887a upstream.

Need to brelse the buffer_head stored in cur_epos and next_epos.

Signed-off-by: Namjae Jeon &lt;namjae.jeon@samsung.com&gt;
Signed-off-by: Ashish Sangwan &lt;a.sangwan@samsung.com&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Shuah Khan &lt;shuah.khan@hp.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ext4: lock i_mutex when truncating orphan inodes</title>
<updated>2013-01-17T16:43:57Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2012-12-27T06:42:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a4202fd727f6bf57827061104a60307e78124ea2'/>
<id>urn:sha1:a4202fd727f6bf57827061104a60307e78124ea2</id>
<content type='text'>
commit 721e3eba21e43532e438652dd8f1fcdfce3187e7 upstream.

Commit c278531d39 added a warning when ext4_flush_unwritten_io() is
called without i_mutex being taken.  It had previously not been taken
during orphan cleanup since races weren't possible at that point in
the mount process, but as a result of this c278531d39, we will now see
a kernel WARN_ON in this case.  Take the i_mutex in
ext4_orphan_cleanup() to suppress this warning.

Reported-by: Alexander Beregalov &lt;a.beregalov@gmail.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Reviewed-by: Zheng Liu &lt;wenqing.lz@taobao.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ext4: do not try to write superblock on ro remount w/o journal</title>
<updated>2013-01-17T16:43:57Z</updated>
<author>
<name>Michael Tokarev</name>
<email>mjt@tls.msk.ru</email>
</author>
<published>2012-12-25T19:08:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1ba9a27ec24b133799bc1b8a77d733c4015d0abd'/>
<id>urn:sha1:1ba9a27ec24b133799bc1b8a77d733c4015d0abd</id>
<content type='text'>
commit d096ad0f79a782935d2e06ae8fb235e8c5397775 upstream.

When a journal-less ext4 filesystem is mounted on a read-only block
device (blockdev --setro will do), each remount (for other, unrelated,
flags, like suid=&gt;nosuid etc) results in a series of scary messages
from kernel telling about I/O errors on the device.

This is becauese of the following code ext4_remount():

       if (sbi-&gt;s_journal == NULL)
                ext4_commit_super(sb, 1);

at the end of remount procedure, which forces writing (flushing) of
a superblock regardless whenever it is dirty or not, if the filesystem
is readonly or not, and whenever the device itself is readonly or not.

We only need call ext4_commit_super when the file system had been
previously mounted read/write.

Thanks to Eric Sandeen for help in diagnosing this issue.

Signed-off-By: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>jbd2: fix assertion failure in jbd2_journal_flush()</title>
<updated>2013-01-17T16:43:57Z</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2012-12-21T05:15:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7c558b7eb837ca7bc014af2f5509be143c3c3670'/>
<id>urn:sha1:7c558b7eb837ca7bc014af2f5509be143c3c3670</id>
<content type='text'>
commit d7961c7fa4d2e3c3f12be67e21ba8799b5a7238a upstream.

The following race is possible between start_this_handle() and someone
calling jbd2_journal_flush().

Process A                              Process B
start_this_handle().
  if (journal-&gt;j_barrier_count) # false
  if (!journal-&gt;j_running_transaction) { #true
    read_unlock(&amp;journal-&gt;j_state_lock);
                                       jbd2_journal_lock_updates()
                                       jbd2_journal_flush()
                                         write_lock(&amp;journal-&gt;j_state_lock);
                                         if (journal-&gt;j_running_transaction) {
                                           # false
                                         ... wait for committing trans ...
                                         write_unlock(&amp;journal-&gt;j_state_lock);
    ...
    write_lock(&amp;journal-&gt;j_state_lock);
    if (!journal-&gt;j_running_transaction) { # true
      jbd2_get_transaction(journal, new_transaction);
    write_unlock(&amp;journal-&gt;j_state_lock);
    goto repeat; # eventually blocks on j_barrier_count &gt; 0
                                         ...
                                         J_ASSERT(!journal-&gt;j_running_transaction);
                                           # fails

We fix the race by rechecking j_barrier_count after reacquiring j_state_lock
in exclusive mode.

Reported-by: yjwsignal@empal.com
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ext4: fix extent tree corruption caused by hole punch</title>
<updated>2013-01-17T16:43:57Z</updated>
<author>
<name>Forrest Liu</name>
<email>forrestl@synology.com</email>
</author>
<published>2012-12-17T14:55:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8cbe63802ddac6b242e4a4293fc338fa7808272c'/>
<id>urn:sha1:8cbe63802ddac6b242e4a4293fc338fa7808272c</id>
<content type='text'>
commit c36575e663e302dbaa4d16b9c72d2c9a913a9aef upstream.

When depth of extent tree is greater than 1, logical start value of
interior node is not correctly updated in ext4_ext_rm_idx.

Signed-off-by: Forrest Liu &lt;forrestl@synology.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Reviewed-by: Ashish Sangwan &lt;ashishsangwan2@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
</feed>
