linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Boaz Harrosh <bharrosh@panasas.com>
Cc: Christoph Hellwig <hch@lst.de>, linux-fsdevel@vger.kernel.org
Subject: Re: exofs_file_fsync
Date: Tue, 1 Jun 2010 12:04:01 +0200	[thread overview]
Message-ID: <20100601100401.GB28762@lst.de> (raw)
In-Reply-To: <4C03BD14.5030004@panasas.com>

On Mon, May 31, 2010 at 04:43:48PM +0300, Boaz Harrosh wrote:
> OK Chritoff I would need your help Please.
> 
> It looks like what I need exactly is:
> 	write_inode_now(inode, sync)
> 
> But write_inode_now() has one extra hunk over generic_file_fsync:
> 	if (sync)
> 		inode_sync_wait(inode);

It waits for I_SYNC beeing cleared, which is entirely superflous
for ->fsync purposes.  In fact I don't have the slightest idea
what it is useful for, given that we already clear I_SYNC inside
writeback_single_inode ourselves.  So the only thing it causes
is to wait for another code racing to step into this code just
after us.

> Do you think I can get in trouble calling it from ->fsync
> 
> I don't like generic_file_fsync because it does not write my
> data since I don't have buffer_heads.

Then copy it.

> OK, I'm totally lost what does ->fsync need to do? only write
> the inode or the pages as well?

The pages are written by vfs_fsync_range.  You need to make sure
that the inode back, or if the datasync flag is set only changes
to the inode require to find that data are written back.  That's
basically a messy wording for you can skip dirtiness of timestamp
updates if the datasync flag is set.

Note that your patch below is very wrong for this, as it does
a lot of asynchronous activity if the datasync flag is not set.


  parent reply	other threads:[~2010-06-01 10:04 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-31 10:09 exofs_file_fsync Christoph Hellwig
2010-05-31 10:23 ` exofs_file_fsync Boaz Harrosh
2010-05-31 10:27   ` exofs_file_fsync Christoph Hellwig
2010-05-31 10:31     ` exofs_file_fsync Boaz Harrosh
2010-05-31 10:33       ` exofs_file_fsync Christoph Hellwig
2010-05-31 13:43         ` exofs_file_fsync Boaz Harrosh
2010-05-31 13:46           ` exofs_file_fsync Boaz Harrosh
2010-06-01 10:05             ` exofs_file_fsync Christoph Hellwig
2010-06-01 10:04           ` Christoph Hellwig [this message]
2010-06-01 15:29             ` exofs_file_fsync Boaz Harrosh
2010-06-01 15:30 ` [PATCH] exofs: exofs_file_fsync correctness Boaz Harrosh
2010-06-01 15:33   ` [osd-dev] " Boaz Harrosh
2010-06-01 15:34   ` Christoph Hellwig
2010-06-01 15:40     ` Boaz Harrosh
2010-06-01 15:47       ` Christoph Hellwig
2010-06-01 16:10         ` Boaz Harrosh
2010-06-01 16:11   ` [PATCH ver2] exofs: exofs_file_fsync and exofs_file_flush correctness Boaz Harrosh
2010-06-01 16:17     ` Christoph Hellwig
2010-06-01 16:36       ` Boaz Harrosh
2010-06-01 17:03   ` [PATCH ver3] " Boaz Harrosh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100601100401.GB28762@lst.de \
    --to=hch@lst.de \
    --cc=bharrosh@panasas.com \
    --cc=linux-fsdevel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).