Difference between release_page() and launder_page()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Trond and others,

I've been trying to figure out meaning of release_page() vs.
launder_page() by looking at the source code and the history behind
it.  Here's what I could piece together so far:

1. Before launder_page() was added, release_page() was intended to do
the file system's writeback.
2. This would cause a deadlock for NFS because in some cases, the
inode lock would be taken after the page lock to process write
requests to the server.
3. The page writeback was moved to nfs_launder_page() instead of
nfs_release_page() to avoid the deadlock.
4. This, however, misses pages that are clean but unstable (?).  To
allow writeback of these pages, writeback was added back to
nfs_release_page()

Do I have the picture correct?  Could you explain how in NFS some
pages end up being dirty while others end up being clean-but-unstable?

Thanks,
Akshat
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux