<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/jffs2, branch linux-2.6.25.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.25.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.25.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2008-05-01T21:44:31Z</updated>
<entry>
<title>JFFS2: Fix free space leak with in-band cleanmarkers</title>
<updated>2008-05-01T21:44:31Z</updated>
<author>
<name>David Woodhouse</name>
</author>
<published>2008-04-23T10:15:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a889712794ce774eee7b4649136fecf3a8bf76ee'/>
<id>urn:sha1:a889712794ce774eee7b4649136fecf3a8bf76ee</id>
<content type='text'>
We were accounting for the cleanmarker by calling jffs2_link_node_ref()
(without locking!), which adjusted both superblock and per-eraseblock
accounting, subtracting the size of the cleanmarker from {jeb,c}-&gt;free_size
and adding it to {jeb,c}-&gt;used_size.

But only _then_ were we adding the size of the newly-erased block back
to the superblock counts, and we were adding each of jeb-&gt;{free,used}_size
to the corresponding superblock counts. Thus, the size of the cleanmarker
was effectively subtracted from the superblock's free_size _twice_.

Fix this, by always adding a full eraseblock size to c-&gt;free_size when
we've erased a block. And call jffs2_link_node_ref() under the proper
lock, while we're at it.

Thanks to Alexander Yurchenko and/or Damir Shayhutdinov for (almost)
pinpointing the problem.

[Backport of commit 014b164e1392a166fe96e003d2f0e7ad2e2a0bb7]

Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>JFFS2 Fix of panics caused by wrong condition for hole frag creation in write_begin</title>
<updated>2008-04-14T22:43:14Z</updated>
<author>
<name>Alexey Korolev</name>
</author>
<published>2008-04-14T19:45:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=abe2f41430770270a1512bf78f489284bfbdbd04'/>
<id>urn:sha1:abe2f41430770270a1512bf78f489284bfbdbd04</id>
<content type='text'>
This fixes a regression introduced in commit
205c109a7a96d9a3d8ffe64c4068b70811fef5e8 when switching to
write_begin/write_end operations in JFFS2.

The page offset is miscalculated, leading to corruption of the fragment
lists and subsequently to memory corruption and panics.

[ Side note: the bug is a fairly direct result of the naming.  Nick was
  likely misled by the use of "offs", since we tend to use the notion of
  "offset" not as an absolute position, but as an offset _within_ a page
  or allocation.

  Alternatively, a "pgoff_t" is a page index, but not a byte offset -
  our VM naming can be a bit confusing.

  So in this case, a VM person would likely have called this a "pos",
  not an "offs", or perhaps talked about byte offsets rather than page
  offsets (since it's counted in bytes, not pages).    - Linus ]

Signed-off-by: Alexey Korolev &lt;akorolev@infradead.org&gt;
Signed-off-by: Vasiliy Leonenko &lt;vasiliy.leonenko@mail.ru&gt;
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Merge git://git.infradead.org/mtd-2.6</title>
<updated>2008-02-07T18:20:31Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2008-02-07T18:20:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a8e98d6d51a3eb7bb061b1625193a129c8bd094f'/>
<id>urn:sha1:a8e98d6d51a3eb7bb061b1625193a129c8bd094f</id>
<content type='text'>
* git://git.infradead.org/mtd-2.6: (120 commits)
  [MTD] Fix mtdoops.c compilation
  [MTD] [NOR] fix startup lock when using multiple nor flash chips
  [MTD] [DOC200x] eccbuf is statically defined and always evaluate to true
  [MTD] Fix maps/physmap.c compilation with CONFIG_PM
  [MTD] onenand: Add panic_write function to the onenand driver
  [MTD] mtdoops: Use the panic_write function when present
  [MTD] Add mtd panic_write function pointer
  [MTD] [NAND] Freescale enhanced Local Bus Controller FCM NAND support.
  [MTD] physmap.c: Add support for multiple resources
  [MTD] [NAND] Fix misparenthesization introduced by commit 78b65179...
  [MTD] [NAND] Fix Blackfin NFC ECC calculating bug with page size 512 bytes
  [MTD] [NAND] Remove wrong operation in PM function of the BF54x NFC driver
  [MTD] [NAND] Remove unused variable in plat_nand_remove
  [MTD] Unlocking all Intel flash that is locked on power up.
  [MTD] [NAND] at91_nand: Make mtdparts option can override board info
  [MTD] mtdoops: Various minor cleanups
  [MTD] mtdoops: Ensure sequential write to the buffer
  [MTD] mtdoops: Perform write operations in a workqueue
  [MTD] mtdoops: Add further error return code checking
  [MTD] [NOR] Test devtype, not definition in flash_probe(), drivers/mtd/devices/lart.c
  ...
</content>
</entry>
<entry>
<title>iget: stop JFFS2 from using iget() and read_inode()</title>
<updated>2008-02-07T16:42:28Z</updated>
<author>
<name>David Howells</name>
</author>
<published>2008-02-07T08:15:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5451f79f5f817880958ed063864ad268d94ccd1f'/>
<id>urn:sha1:5451f79f5f817880958ed063864ad268d94ccd1f</id>
<content type='text'>
Stop the JFFS2 filesystem from using iget() and read_inode().  Replace
jffs2_read_inode() with jffs2_iget(), and call that instead of iget().
jffs2_iget() then uses iget_locked() directly and returns a proper error code
instead of an inode in the event of an error.

jffs2_do_fill_super() returns any error incurred when getting the root inode
instead of EINVAL.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Cc: David Woodhouse &lt;dwmw2@infradead.org&gt;
Acked-by: Christoph Hellwig &lt;hch@lst.de&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>
<entry>
<title>Convert ERR_PTR(PTR_ERR(p)) instances to ERR_CAST(p)</title>
<updated>2008-02-07T16:42:26Z</updated>
<author>
<name>David Howells</name>
</author>
<published>2008-02-07T08:15:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e231c2ee64eb1c5cd3c63c31da9dac7d888dcf7f'/>
<id>urn:sha1:e231c2ee64eb1c5cd3c63c31da9dac7d888dcf7f</id>
<content type='text'>
Convert instances of ERR_PTR(PTR_ERR(p)) to ERR_CAST(p) using:

perl -spi -e 's/ERR_PTR[(]PTR_ERR[(](.*)[)][)]/ERR_CAST(\1)/' `grep -rl 'ERR_PTR[(]*PTR_ERR' fs crypto net security`

Signed-off-by: David Howells &lt;dhowells@redhat.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>
</entry>
<entry>
<title>Typoes:  "whith" -&gt; "with"</title>
<updated>2008-02-03T13:14:02Z</updated>
<author>
<name>Robert P. J. Day</name>
</author>
<published>2008-02-03T13:14:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e1b8513d21845fbeb93d6d2c4973db874385059f'/>
<id>urn:sha1:e1b8513d21845fbeb93d6d2c4973db874385059f</id>
<content type='text'>
Signed-off-by: Robert P. J. Day &lt;rpjday@crashcourse.ca&gt;
Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git</title>
<updated>2008-02-03T07:30:32Z</updated>
<author>
<name>David Woodhouse</name>
</author>
<published>2008-02-03T07:29:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c1f3ee120bb61045b1c0a3ead620d1d65af47130'/>
<id>urn:sha1:c1f3ee120bb61045b1c0a3ead620d1d65af47130</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[JFFS2] Add missing call to posix_acl_release</title>
<updated>2008-01-08T07:48:58Z</updated>
<author>
<name>Julia Lawall</name>
</author>
<published>2008-01-06T16:50:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=36f97bc617e2c31d16b74e89cd2406de4d24ede5'/>
<id>urn:sha1:36f97bc617e2c31d16b74e89cd2406de4d24ede5</id>
<content type='text'>
posix_acl_clone does a memory allocation and sets a reference count, so
posix_acl_release is needed afterwards to free it.

The problem was fixed using the following semantic patch.
(http://www.emn.fr/x-info/coccinelle/)

// &lt;smpl&gt;
@@
type T;
identifier E;
expression E1, E2;
int ret;
statement S;
@@

  T E;
  &lt;+...
(
  E = \(posix_acl_clone\|posix_acl_alloc\|posix_acl_dup\)(...);
  if (E == NULL) S
|
  if ((E = \(posix_acl_clone\|posix_acl_alloc\|posix_acl_dup\)(...)) == NULL) S
)
  ... when != E2 = E
      when strict
(
  posix_acl_release(E);
|
  E1 = E;
|
+ posix_acl_release(E);
  return;
|
+ posix_acl_release(E);
  return ret;
)
  ...+&gt;
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Acked-by: KaiGai Kohei &lt;kaigai@ak.jp.nec.com&gt;
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</content>
</entry>
<entry>
<title>Freezer: Fix JFFS2 garbage collector freezing issue (rev. 2)</title>
<updated>2007-12-04T06:35:41Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2007-12-04T00:11:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e136e769d471e7f3d24a8f6bf9c91dcb372bd0ab'/>
<id>urn:sha1:e136e769d471e7f3d24a8f6bf9c91dcb372bd0ab</id>
<content type='text'>
Fix breakage caused by commit d5d8c5976d6adeddb8208c240460411e2198b393
"freezer: do not send signals to kernel threads" in
jffs2_garbage_collect_thread() that assumed it would be sent signals
by the freezer.

Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Cc: David Woodhouse &lt;dwmw2@infradead.org&gt;
Cc: Pete MacKay &lt;armlinux@architechnical.net&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
<entry>
<title>[JFFS2] Fix return value check for mtd-&gt;point() in check_node_data()</title>
<updated>2007-11-28T11:54:55Z</updated>
<author>
<name>Alexey Korolev</name>
</author>
<published>2007-11-27T11:25:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c2056e1e1ddcca8d43e89543e1795e4457f5d1e9'/>
<id>urn:sha1:c2056e1e1ddcca8d43e89543e1795e4457f5d1e9</id>
<content type='text'>
If we ask it to map 'len' bytes of the device, don't compare against 
some other number and whine that it's different. That's a little silly.

Signed-off-by: Alexey Korolev &lt;akorolev@infradead.org&gt;
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</content>
</entry>
</feed>
