summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAndrew Morton <akpm@digeo.com>2003-02-02 06:06:29 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2003-02-02 06:06:29 -0800
commit5f44f4a9ee66ba0232ee55fc7456b24aeb448149 (patch)
tree0a9f18b230240fe7d3c073c37a5f058e5930642a /include/linux
parent6a3354a951d40d2f8e98317626eb3f88a4952818 (diff)
[PATCH] Fix data loss problem due to sys_sync
In 2.5.52 I broke sys_sync() for ext2 in subtle ways. sys_sync() will set mapping->dirtied_when non-zero against a clean inode. Later, in (say) __iget(), that inode gets moved over to inode_unused or inode_in_use. But because it has non-zero ->dirtied_when, __mark_inode_dirty() thinks that the inode must still be on sb->s_dirty. But it isn't. It's on inode_in_use. It (and its pages) never get written out and the data gets thrown away on unmount. The patch ceases to use ->dirtied_when as an indicator of inode dirtiness. Not sure why I even did that :(
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions