lkml.org 
[lkml]   [2005]   [Oct]   [12]   [last100]   RSS Feed
Views: [more markup]   [less markup]   [headers]   [forward]  
 
Messages in this thread
Patch in this message
/
DateTue, 11 Oct 2005 21:16:01 -0700
FromAndrew Morton <>
SubjectRe: [PATCH 1/2] miss-sync changes on attributes (Re: [PATCH 2/2][FAT] miss-sync issues on sync mount (miss-sync on utime))
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> wrote:
>
> Andrew Morton <akpm@osdl.org> writes:
> 
> >>  /**
> >> + * sync_inode_wodata - sync(write and wait) inode to disk, without it's data.
> >> + * @inode: the inode to sync
> >> + *
> >> + * sync_inode_wodata() will write an inode  then wait.  It will also
> >> + * correctly update the inode on its superblock's dirty inode lists 
> >> + * and will update inode->i_state.
> >> + *
> >> + * The caller must have a ref on the inode.
> >> + */
> >> +int sync_inode_wodata(struct inode *inode)
> >> +{
> >> +	struct writeback_control wbc = {
> >> +		.sync_mode = WB_SYNC_ALL, /* wait */
> >> +		.nr_to_write = 0,/* no data to be written */
> >> +	};
> >> +	return sync_inode(inode, &wbc);
> >> +}
> >> +
> >
> > I think this function duplicates write_inode_now()?
> 
> write_inode_now() seems to write data pages, but this doesn't write
> (.nr_to_write = 0).

hm, OK.

However there's not much point in writing a brand-new function when
write_inode_now() almost does the right thing.  We can share the
implementation within fs-writeback.c.

<looks>

Isn't write_inode_now() buggy?  If !mapping_cap_writeback_dirty() we
should still write the inode itself?



diff -puN fs/fs-writeback.c~write_inode_now-write-inode-if-not-bdi_cap_no_writeback fs/fs-writeback.c
--- devel/fs/fs-writeback.c~write_inode_now-write-inode-if-not-bdi_cap_no_writeback	2005-10-11 21:13:25.000000000 -0700
+++ devel-akpm/fs/fs-writeback.c	2005-10-11 21:13:40.000000000 -0700
@@ -558,7 +558,7 @@ int write_inode_now(struct inode *inode,
 	};
 
 	if (!mapping_cap_writeback_dirty(inode->i_mapping))
-		return 0;
+		wbc.nr_to_write = 0;
 
 	might_sleep();
 	spin_lock(&inode_lock);
_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-10-12 02:20    [W:0.275 / U:0.230 seconds]
©2003-2008 Jasper Spaans