All of lore.kernel.org
 help / color / mirror / Atom feed
* Inode metadata and file data syncing
@ 2012-07-18 16:53 Jelinek, Sarah
  2012-07-18 17:21 ` Josef Bacik
  2012-07-19  1:48 ` Andreas Dilger
  0 siblings, 2 replies; 11+ messages in thread
From: Jelinek, Sarah @ 2012-07-18 16:53 UTC (permalink / raw)
  To: linux-fsdevel

I am in the process of writing a file system in Linux. This file system
has a separate mechanism by which we manage metadata so I do not want to
write the file inode metadata to disk without explicitly requesting an
update. I do need the file data pages to be written to disk as per the
normal writeback process.

If I use the common mechanism of creating an inode and inserting it into
the hash via insert_inode_locked(), the inode will be in the I_NEW state
and when the inode is marked dirty it will be put on the dirty list and
eventually flushed out to disk. One way I thought I could get around this
is by initializing the inode to i_state = I_DIRTY, skipping I_NEW, and
using insert_inode_hash() instead, so that if mark_inode_dirty() is called
it won't get put on the dirty list. The issue with this approach is that
it looks like this inode's pages will not get flushed to disk either since
it won't ever get on the dirty list. I need the pages written just not the
inode itself. 

I am handling directory inodes differently. Looking at shmem I see that
the backing_dev_info is set to:

struct backing_dev_info brnl_backing_dev_info = {
    .ra_pages = 0,
    .capabilities   = BDI_CAP_NO_ACCT_AND_WRITEBACK | BDI_CAP_SWAP_BACKED,
};


I have done the same in my code to prevent directory inodes from being
written to disk.

Can I manage the inode->i_state with the I_DIRTY flag and then somehow
mark the inode pages dirty and add them to the dirty page list
independently? What I am worried about is what affect doing this will have
on the processing of anything in page cache or inode cache related to this
inode.

Thank you for your help,
Sarah Jelinek


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2012-07-19 18:08 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-18 16:53 Inode metadata and file data syncing Jelinek, Sarah
2012-07-18 17:21 ` Josef Bacik
2012-07-18 17:52   ` Jelinek, Sarah
2012-07-19  1:48 ` Andreas Dilger
2012-07-19 12:44   ` Jelinek, Sarah
2012-07-19 13:12     ` faibish_sorin
2012-07-19 13:18       ` Jelinek, Sarah
2012-07-19 13:50         ` faibish_sorin
2012-07-19 16:49           ` Zach Brown
2012-07-19 17:11             ` Andreas Dilger
2012-07-19 18:08               ` Matthew Wilcox

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.