<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs/fs-writeback.c, branch v2.6.19</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/fs/fs-writeback.c?h=v2.6.19</id>
<link rel='self' href='https://git.amat.us/linux/atom/fs/fs-writeback.c?h=v2.6.19'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2006-09-30T18:52:26Z</updated>
<entry>
<title>[PATCH] BLOCK: Remove dependence on existence of blockdev_superblock [try #6]</title>
<updated>2006-09-30T18:52:26Z</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2006-08-29T18:06:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7b0de42d7c5a471741ede4e71727d88000e6ea59'/>
<id>urn:sha1:7b0de42d7c5a471741ede4e71727d88000e6ea59</id>
<content type='text'>
Move blockdev_superblock extern declaration from fs/fs-writeback.c to a
headerfile and remove the dependence on it by wrapping it in a macro.

Signed-Off-By: David Howells &lt;dhowells@redhat.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>[PATCH] BLOCK: Move extern declarations out of fs/*.c into header files [try #6]</title>
<updated>2006-09-30T18:52:18Z</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2006-09-30T18:52:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=07f3f05c1e3052b8656129b2a5aca9f888241a34'/>
<id>urn:sha1:07f3f05c1e3052b8656129b2a5aca9f888241a34</id>
<content type='text'>
Create a new header file, fs/internal.h, for common definitions local to the
sources in the fs/ directory.

Move extern definitions that should be in header files from fs/*.c to
fs/internal.h or other main header files where they span directories.

Signed-Off-By: David Howells &lt;dhowells@redhat.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>[PATCH] zoned vm counters: conversion of nr_unstable to per zone counter</title>
<updated>2006-06-30T18:25:36Z</updated>
<author>
<name>Christoph Lameter</name>
<email>clameter@sgi.com</email>
</author>
<published>2006-06-30T08:55:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fd39fc8561be33065306bdac0e30414e1e8ac8e1'/>
<id>urn:sha1:fd39fc8561be33065306bdac0e30414e1e8ac8e1</id>
<content type='text'>
Conversion of nr_unstable to a per zone counter

We need to do some special modifications to the nfs code since there are
multiple cases of disposition and we need to have a page ref for proper
accounting.

This converts the last critical page state of the VM and therefore we need to
remove several functions that were depending on GET_PAGE_STATE_LAST in order
to make the kernel compile again.  We are only left with event type counters
in page state.

[akpm@osdl.org: bugfixes]
Signed-off-by: Christoph Lameter &lt;clameter@sgi.com&gt;
Cc: Trond Myklebust &lt;trond.myklebust@fys.uio.no&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] zoned vm counters: conversion of nr_dirty to per zone counter</title>
<updated>2006-06-30T18:25:35Z</updated>
<author>
<name>Christoph Lameter</name>
<email>clameter@sgi.com</email>
</author>
<published>2006-06-30T08:55:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b1e7a8fd854d2f895730e82137400012b509650e'/>
<id>urn:sha1:b1e7a8fd854d2f895730e82137400012b509650e</id>
<content type='text'>
This makes nr_dirty a per zone counter.  Looping over all processors is
avoided during writeback state determination.

The counter aggregation for nr_dirty had to be undone in the NFS layer since
we summed up the page counts from multiple zones.  Someone more familiar with
NFS should probably review what I have done.

[akpm@osdl.org: bugfix]
Signed-off-by: Christoph Lameter &lt;clameter@sgi.com&gt;
Cc: Trond Myklebust &lt;trond.myklebust@fys.uio.no&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] Kill PF_SYNCWRITE flag</title>
<updated>2006-06-23T15:10:39Z</updated>
<author>
<name>Jens Axboe</name>
<email>axboe@suse.de</email>
</author>
<published>2006-06-13T06:26:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b31dc66a54ad986b6b73bdc49c8efc17cbad1833'/>
<id>urn:sha1:b31dc66a54ad986b6b73bdc49c8efc17cbad1833</id>
<content type='text'>
A process flag to indicate whether we are doing sync io is incredibly
ugly. It also causes performance problems when one does a lot of async
io and then proceeds to sync it. Part of the io will go out as async,
and the other part as sync. This causes a disconnect between the
previously submitted io and the synced io. For io schedulers such as CFQ,
this will cause us lost merges and suboptimal behaviour in scheduling.

Remove PF_SYNCWRITE completely from the fsync/msync paths, and let
the O_DIRECT path just directly indicate that the writes are sync
by using WRITE_SYNC instead.

Signed-off-by: Jens Axboe &lt;axboe@suse.de&gt;
</content>
</entry>
<entry>
<title>[PATCH] writeback: fix range handling</title>
<updated>2006-06-23T14:42:49Z</updated>
<author>
<name>OGAWA Hirofumi</name>
<email>hirofumi@mail.parknet.co.jp</email>
</author>
<published>2006-06-23T09:03:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=111ebb6e6f7bd7de6d722c5848e95621f43700d9'/>
<id>urn:sha1:111ebb6e6f7bd7de6d722c5848e95621f43700d9</id>
<content type='text'>
When a writeback_control's `start' and `end' fields are used to
indicate a one-byte-range starting at file offset zero, the required
values of .start=0,.end=0 mean that the -&gt;writepages() implementation
has no way of telling that it is being asked to perform a range
request.  Because we're currently overloading (start == 0 &amp;&amp; end == 0)
to mean "this is not a write-a-range request".

To make all this sane, the patch changes range of writeback_control.

So caller does: If it is calling -&gt;writepages() to write pages, it
sets range (range_start/end or range_cyclic) always.

And if range_cyclic is true, -&gt;writepages() thinks the range is
cyclic, otherwise it just uses range_start and range_end.

This patch does,

    - Add LLONG_MAX, LLONG_MIN, ULLONG_MAX to include/linux/kernel.h
      -1 is usually ok for range_end (type is long long). But, if someone did,

		range_end += val;		range_end is "val - 1"
		u64val = range_end &gt;&gt; bits;	u64val is "~(0ULL)"

      or something, they are wrong. So, this adds LLONG_MAX to avoid nasty
      things, and uses LLONG_MAX for range_end.

    - All callers of -&gt;writepages() sets range_start/end or range_cyclic.

    - Fix updates of -&gt;writeback_index. It seems already bit strange.
      If it starts at 0 and ended by check of nr_to_write, this last
      index may reduce chance to scan end of file.  So, this updates
      -&gt;writeback_index only if range_cyclic is true or whole-file is
      scanned.

Signed-off-by: OGAWA Hirofumi &lt;hirofumi@mail.parknet.co.jp&gt;
Cc: Nathan Scott &lt;nathans@sgi.com&gt;
Cc: Anton Altaparmakov &lt;aia21@cantab.net&gt;
Cc: Steven French &lt;sfrench@us.ibm.com&gt;
Cc: "Vladimir V. Saveliev" &lt;vs@namesys.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] Move cond_resched() after iput() in sync_sb_inodes()</title>
<updated>2006-03-25T16:22:56Z</updated>
<author>
<name>OGAWA Hirofumi</name>
<email>hirofumi@mail.parknet.co.jp</email>
</author>
<published>2006-03-25T11:07:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4ffc84442572669727dc4fcd976582508eaf23e7'/>
<id>urn:sha1:4ffc84442572669727dc4fcd976582508eaf23e7</id>
<content type='text'>
In here, I think the following order is more cache-friendly.

Signed-off-by: OGAWA Hirofumi &lt;hirofumi@mail.parknet.co.jp&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] kernel-docs: fix kernel-doc format problems</title>
<updated>2005-11-07T15:53:55Z</updated>
<author>
<name>Randy Dunlap</name>
<email>rdunlap@xenotime.net</email>
</author>
<published>2005-11-07T09:01:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b8887e6e8c04bcefb512cdb08fc7e9c310ac847e'/>
<id>urn:sha1:b8887e6e8c04bcefb512cdb08fc7e9c310ac847e</id>
<content type='text'>
Convert to proper kernel-doc format.

Some have extra blank lines (not allowed immed.  after the function name)
or need blank lines (after all parameters).  Function summary must be only
one line.

Colon (":") in a function description does weird things (causes kernel-doc
to think that it's a new section head sadly).

Signed-off-by: Randy Dunlap &lt;rdunlap@xenotime.net&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] write_inode_now(): write inode if not BDI_CAP_NO_WRITEBACK</title>
<updated>2005-11-07T15:53:35Z</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@osdl.org</email>
</author>
<published>2005-11-07T08:59:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=49364ce2534418462d681ad99e52e79a00b0f40b'/>
<id>urn:sha1:49364ce2534418462d681ad99e52e79a00b0f40b</id>
<content type='text'>
If the backing_dev_info doesn't have BDI_CAP_NO_WRITEBACK we're not supposed
to write back an inode's pages.  But in this situation write_inode_now()
refuses to write the inode itself as well.  Fix.

Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] fix __writeback_single_inode WARN_ON</title>
<updated>2005-10-31T22:22:04Z</updated>
<author>
<name>Andrea Arcangeli</name>
<email>andrea@suse.de</email>
</author>
<published>2005-10-31T22:08:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=659603ef692d3f6c7c216e80310990253864bf2e'/>
<id>urn:sha1:659603ef692d3f6c7c216e80310990253864bf2e</id>
<content type='text'>
When the inode count is zero in inode writeback, the

	WARN_ON(!(inode-&gt;i_state &amp; I_WILL_FREE));

is broken, and needs to test for either I_WILL_FREE|I_FREEING.

When the inode is in I_FREEING state, it's already out of the visibility
of the vm so it can't be freed so it doesn't require the __iget and the
generic_delete_inode path can call the sync internally to the lowlevel
fs callback during the last iput. So the inode being in I_FREEING is
also a valid condition for calling the sync with i_count == 0.

The specific stack trace is this:

  0xc00000007b8fb6e0  0xc00000000010118c  .__writeback_single_inode +0x5c
  0xc00000007b8fb6e0  0xc0000000001014dc (lr) .sync_inode +0x3c
  0xc00000007b8fb790  0xc0000000001014dc  .sync_inode +0x3c
  0xc00000007b8fb820  0xc0000000001a5020  .ext2_sync_inode +0x64
  0xc00000007b8fb8f0  0xc0000000001a65b4  .ext2_truncate +0x3f8
  0xc00000007b8fba40  0xc0000000001a6940  .ext2_delete_inode +0xdc
  0xc00000007b8fbac0  0xc0000000000f7a5c  .generic_delete_inode +0x124
  0xc00000007b8fbb50  0xc0000000000f5fe0  .iput +0xb8
  0xc00000007b8fbbe0  0xc0000000000e9fd4  .sys_unlink +0x2a8
  0xc00000007b8fbd10  0xc00000000001048c  .ret_from_syscall_1 +0x0

Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
</feed>
