Metadata writeback cache support (LU-10938)

[LU-13009] WBC: fsync() support Created: 26/Nov/19  Updated: 10/Jan/22

Status: Open
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Technical task Priority: Blocker
Reporter: Qian Yingjin Assignee: Qian Yingjin
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Related
is related to LU-10938 Metadata writeback cache support Open
Rank (Obsolete): 9223372036854775807

 Description   

When MemFS decides to flush changes to the persistent storage as a result of an fsync() call or a normal VFS/VM dirty inode writeback, this can be implemented via super block VFS interface ->write_inode()) in the background when it gets old.

An fsync on a file or directory must ensure that all changes to that file or directory, at the time fsync was called, are flushed to the persistent storage. As the subtree is cached on client-side MemFS, may not be flushed and inconsistent with the subtree on the server. To ensure the file and directory entry is durably stored in the persistent storage on MDS, it must ensure all its ancestral directory must be flushed as well when fsync was called.

To achieve this goal, it needs to reverse backtracking to its first ancestral directory that is synchronized to the server (in Sync(S) state). And then synchronize from this ancestral directory to the node called fsync() in top-down order.



 Comments   
Comment by Gerrit Updater [ 10/Jan/20 ]

Yingjin Qian (qian@ddn.com) uploaded a new patch: https://review.whamcloud.com/37180
Subject: LU-13009 wbc: add sync(2) and fsync(2) support for WBC
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 6e43f3c8a853e92ab9b79c4ddf570cf287d80368

Generated at Sat Feb 10 02:57:35 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.