<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/fs/logfs/journal.c, branch v4.1</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>logfs: create a pagecache page if it is not present</title>
<updated>2012-07-23T03:48:14+00:00</updated>
<author>
<name>Prasad Joshi</name>
<email>prasadjoshi.linux@gmail.com</email>
</author>
<published>2012-07-23T03:48:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ddb24bbac3681b87ae0638aacb702d9273e3c025'/>
<id>ddb24bbac3681b87ae0638aacb702d9273e3c025</id>
<content type='text'>
While writing the partial journal entries we assumed that the page
associated with the journal would always in locatable. This incorrect
assumption resulted in the following BUG

kernel BUG at /home/benixon/WD_SMR/kernels/linux-3.3.7-logfs/fs/logfs/journal.c:569!
EIP is at logfs_write_area+0xb6/0x109 [logfs]
EAX: 00000000 EBX: 00000000 ECX: ef6efea4 EDX: 00000000
ESI: 001b9000 EDI: f009e000 EBP: c3c13f14 ESP: c3c13ef0
DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process sync (pid: 1799, ti=c3c12000 task=f07825b0 task.ti=c3c12000)
Stack:
01001000 c3c13f26 781b9000 00000000 f009e000 f7286000 f1f83400 f8445071
f1f83400 c3c13f30 f8445ae9 c3c13f20 0000100a 000ee000 f009e000 00000001
c3c13f5c f8445d17 c05eb0ee 00000000 f1f83400 ef718000 f009e25c ea9c3d80
Call Trace:
[&lt;f8445071&gt;] ? account_shadow+0x16d/0x16d [logfs]
[&lt;f8445ae9&gt;] logfs_write_je+0x2a/0x44 [logfs]
[&lt;f8445d17&gt;] logfs_write_anchor+0x114/0x228 [logfs]
[&lt;c05eb0ee&gt;] ? empty+0x5/0x5
[&lt;f8444522&gt;] logfs_sync_fs+0x1e/0x31 [logfs]
[&lt;c051be66&gt;] __sync_filesystem+0x5d/0x6f
[&lt;c051be8d&gt;] sync_one_sb+0x15/0x17
[&lt;c04ff8b0&gt;] iterate_supers+0x59/0x9a
[&lt;c051be78&gt;] ? __sync_filesystem+0x6f/0x6f
[&lt;c051befc&gt;] sys_sync+0x29/0x4f
[&lt;c084285f&gt;] sysenter_do_call+0x12/0x28
EIP: [&lt;f8445127&gt;] logfs_write_area+0xb6/0x109 [logfs] SS:ESP 0068:c3c13ef0
---[ end trace ef6e9ef52601a945 ]---

The fix is to create the pagecache page if it is not locatable.

Reported-and-tested-by: Benixon Dhas &lt;Benixon.Dhas@wdc.com&gt;
Signed-off-by: Prasad Joshi &lt;prasadjoshi.linux@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While writing the partial journal entries we assumed that the page
associated with the journal would always in locatable. This incorrect
assumption resulted in the following BUG

kernel BUG at /home/benixon/WD_SMR/kernels/linux-3.3.7-logfs/fs/logfs/journal.c:569!
EIP is at logfs_write_area+0xb6/0x109 [logfs]
EAX: 00000000 EBX: 00000000 ECX: ef6efea4 EDX: 00000000
ESI: 001b9000 EDI: f009e000 EBP: c3c13f14 ESP: c3c13ef0
DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process sync (pid: 1799, ti=c3c12000 task=f07825b0 task.ti=c3c12000)
Stack:
01001000 c3c13f26 781b9000 00000000 f009e000 f7286000 f1f83400 f8445071
f1f83400 c3c13f30 f8445ae9 c3c13f20 0000100a 000ee000 f009e000 00000001
c3c13f5c f8445d17 c05eb0ee 00000000 f1f83400 ef718000 f009e25c ea9c3d80
Call Trace:
[&lt;f8445071&gt;] ? account_shadow+0x16d/0x16d [logfs]
[&lt;f8445ae9&gt;] logfs_write_je+0x2a/0x44 [logfs]
[&lt;f8445d17&gt;] logfs_write_anchor+0x114/0x228 [logfs]
[&lt;c05eb0ee&gt;] ? empty+0x5/0x5
[&lt;f8444522&gt;] logfs_sync_fs+0x1e/0x31 [logfs]
[&lt;c051be66&gt;] __sync_filesystem+0x5d/0x6f
[&lt;c051be8d&gt;] sync_one_sb+0x15/0x17
[&lt;c04ff8b0&gt;] iterate_supers+0x59/0x9a
[&lt;c051be78&gt;] ? __sync_filesystem+0x6f/0x6f
[&lt;c051befc&gt;] sys_sync+0x29/0x4f
[&lt;c084285f&gt;] sysenter_do_call+0x12/0x28
EIP: [&lt;f8445127&gt;] logfs_write_area+0xb6/0x109 [logfs] SS:ESP 0068:c3c13ef0
---[ end trace ef6e9ef52601a945 ]---

The fix is to create the pagecache page if it is not locatable.

Reported-and-tested-by: Benixon Dhas &lt;Benixon.Dhas@wdc.com&gt;
Signed-off-by: Prasad Joshi &lt;prasadjoshi.linux@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>logfs: remove useless BUG_ON</title>
<updated>2012-01-28T06:11:56+00:00</updated>
<author>
<name>Joern Engel</name>
<email>joern@logfs.org</email>
</author>
<published>2011-09-12T15:39:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6c69494f6b442834f26377e02d43fc8e1272221d'/>
<id>6c69494f6b442834f26377e02d43fc8e1272221d</id>
<content type='text'>
It prevents write sizes &gt;4k.

Signed-off-by: Joern Engel &lt;joern@logfs.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It prevents write sizes &gt;4k.

Signed-off-by: Joern Engel &lt;joern@logfs.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>logfs: fix deadlock in logfs_get_wblocks, hold and wait on super-&gt;s_write_mutex</title>
<updated>2010-12-23T03:43:33+00:00</updated>
<author>
<name>Prasad Joshi</name>
<email>prasadjoshi124@gmail.com</email>
</author>
<published>2010-12-22T01:24:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=eabb26cacdec33ca6f6fcaee762b57c2205169ca'/>
<id>eabb26cacdec33ca6f6fcaee762b57c2205169ca</id>
<content type='text'>
do_logfs_journal_wl_pass() should use GFP_NOFS for memory allocation GC
code calls btree_insert32 with GFP_KERNEL while holding a mutex
super-&gt;s_write_mutex.

The same mutex is used in address_space_operations-&gt;writepage(), and a
call to writepage() could be triggered as a result of memory allocation
in btree_insert32, causing a deadlock.

Addresses https://bugzilla.kernel.org/show_bug.cgi?id=20342

Signed-off-by: Prasad Joshi &lt;prasadjoshi124@gmail.com&gt;
Cc: Joern Engel &lt;joern@logfs.org&gt;
Cc: Florian Mickler &lt;florian@mickler.org&gt;
Cc: "Rafael J. Wysocki" &lt;rjw@sisk.pl&gt;
Cc: Maciej Rutecki &lt;maciej.rutecki@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
do_logfs_journal_wl_pass() should use GFP_NOFS for memory allocation GC
code calls btree_insert32 with GFP_KERNEL while holding a mutex
super-&gt;s_write_mutex.

The same mutex is used in address_space_operations-&gt;writepage(), and a
call to writepage() could be triggered as a result of memory allocation
in btree_insert32, causing a deadlock.

Addresses https://bugzilla.kernel.org/show_bug.cgi?id=20342

Signed-off-by: Prasad Joshi &lt;prasadjoshi124@gmail.com&gt;
Cc: Joern Engel &lt;joern@logfs.org&gt;
Cc: Florian Mickler &lt;florian@mickler.org&gt;
Cc: "Rafael J. Wysocki" &lt;rjw@sisk.pl&gt;
Cc: Maciej Rutecki &lt;maciej.rutecki@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>logfs: get rid of magical inodes</title>
<updated>2010-08-09T20:48:26+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2010-06-07T16:22:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8e22c1a4e429e9facf309c7e7a03ba9cdfd7b106'/>
<id>8e22c1a4e429e9facf309c7e7a03ba9cdfd7b106</id>
<content type='text'>
ordering problems at -&gt;kill_sb() time are solved by doing iput()
of these suckers in -&gt;put_super()

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ordering problems at -&gt;kill_sb() time are solved by doing iput()
of these suckers in -&gt;put_super()

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>logfs: survive logfs_buf_recover read errors</title>
<updated>2010-05-04T17:37:04+00:00</updated>
<author>
<name>Joern Engel</name>
<email>joern@logfs.org</email>
</author>
<published>2010-05-03T18:54:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=20503664b008e17976bff1fdbc693c77ebd6f6c9'/>
<id>20503664b008e17976bff1fdbc693c77ebd6f6c9</id>
<content type='text'>
Refusing to mount beats a kernel crash.

Signed-off-by: Joern Engel &lt;joern@logfs.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Refusing to mount beats a kernel crash.

Signed-off-by: Joern Engel &lt;joern@logfs.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/joern/logfs</title>
<updated>2010-04-21T19:31:12+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-04-21T19:31:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=255f41c59558a346d65a2012420a7573e36dc584'/>
<id>255f41c59558a346d65a2012420a7573e36dc584</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/joern/logfs:
  [LogFS] Split large truncated into smaller chunks
  [LogFS] Set s_bdi
  [LogFS] Prevent mempool_destroy NULL pointer dereference
  [LogFS] Move assertion
  [LogFS] Plug 8 byte information leak
  [LogFS] Prevent memory corruption on large deletes
  [LogFS] Remove unused method

Fix trivial conflict with added header includes in fs/logfs/super.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* git://git.kernel.org/pub/scm/linux/kernel/git/joern/logfs:
  [LogFS] Split large truncated into smaller chunks
  [LogFS] Set s_bdi
  [LogFS] Prevent mempool_destroy NULL pointer dereference
  [LogFS] Move assertion
  [LogFS] Plug 8 byte information leak
  [LogFS] Prevent memory corruption on large deletes
  [LogFS] Remove unused method

Fix trivial conflict with added header includes in fs/logfs/super.c
</pre>
</div>
</content>
</entry>
<entry>
<title>[LogFS] Move assertion</title>
<updated>2010-04-13T15:57:21+00:00</updated>
<author>
<name>Joern Engel</name>
<email>joern@logfs.org</email>
</author>
<published>2010-04-13T15:57:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ead88af5f577fd2b399a0fcdfe52605116fac489'/>
<id>ead88af5f577fd2b399a0fcdfe52605116fac489</id>
<content type='text'>
The assertion is valid independently of the condition.

Signed-off-by: Joern Engel &lt;joern@logfs.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The assertion is valid independently of the condition.

Signed-off-by: Joern Engel &lt;joern@logfs.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[LogFS] Plug 8 byte information leak</title>
<updated>2010-04-13T15:54:27+00:00</updated>
<author>
<name>Joern Engel</name>
<email>joern@logfs.org</email>
</author>
<published>2010-04-13T15:54:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d3a03f8031000f8297823b80e36db536fd020884'/>
<id>d3a03f8031000f8297823b80e36db536fd020884</id>
<content type='text'>
Within each journal segment, 8 bytes at offset 24 would remain
uninitialized.

Signed-off-by: Joern Engel &lt;joern@logfs.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Within each journal segment, 8 bytes at offset 24 would remain
uninitialized.

Signed-off-by: Joern Engel &lt;joern@logfs.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[LogFS] Prevent memory corruption on large deletes</title>
<updated>2010-04-13T15:46:37+00:00</updated>
<author>
<name>Joern Engel</name>
<email>joern@logfs.org</email>
</author>
<published>2010-04-13T15:46:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=032d8f7268444a0f5d4ee02d9513d682d5b8edfc'/>
<id>032d8f7268444a0f5d4ee02d9513d682d5b8edfc</id>
<content type='text'>
Removing sufficiently large files would create aliases for a large
number of segments.  This in turn results in a large number of journal
entries and an overflow of s_je_array.

Cheap fix is to add a BUG_ON, turning memory corruption into something
annoying, but less dangerous.  Real fix is to count the number of
affected segments and prevent the problem completely.

Signed-off-by: Joern Engel &lt;joern@logfs.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Removing sufficiently large files would create aliases for a large
number of segments.  This in turn results in a large number of journal
entries and an overflow of s_je_array.

Cheap fix is to add a BUG_ON, turning memory corruption into something
annoying, but less dangerous.  Real fix is to count the number of
affected segments and prevent the problem completely.

Signed-off-by: Joern Engel &lt;joern@logfs.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' into export-slabh</title>
<updated>2010-04-05T02:37:28+00:00</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2010-04-05T02:37:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=336f5899d287f06d8329e208fc14ce50f7ec9698'/>
<id>336f5899d287f06d8329e208fc14ce50f7ec9698</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
