Zack's Kernel News

Freezing File Writes

Namjae Jeon posted some patches to implement file freezing – the idea being that a file write could be blocked temporarily, even if a process already held an open file descriptor. He said, "File write freeze functionality, when used in conjunction with inode's immutable flag, can be used for creating truly stable file snapshots, wherein write freeze will prevent any modification to the file from already open file descriptors, and immutable flag will prevent any new modification to the file. One of the intended uses for stable file snapshots would be in the defragmentation applications which defrags single file."

Dmitry Monakhov offered some technical suggestions for Namjae's patch but overall thought the work was interesting. Jan Kara also had some technical suggestions and pointed out that some of Namjae's test code contained race conditions. Namjae responded to all suggestions with code and pseudocode that might improve the behavior.

Jan also pointed out some problems with the overall design. Jan said:

Doing fs-wide freezing from userspace makes sense as Dmitry pointed out. We can then just fail FS_IOC_FWFREEZE with error when the whole fs isn't frozen. I'm just somewhat worried whether the fs-wide freezing won't be too fragile. E.g. consider a situation when you are running a defrag program which is freezing and unfreezing the filesystem and then some background work kicks which will want to snapshot the file system so it will freeze & unfreeze the fs as well. Now depending on how exactly defrag and snapshot race one of the FIFREEZE ioctls will return EBUSY and the process (hopefully gracefully) fails.

This isn't a new situation – if you ran two snapshots at once, you'd see the same failure. But the more fs-wide freezing gets used in different places the stranger and less expected failure you'll see … .

Dave Chinner also had some technical suggestions, although he agreed that some of the code was "terrible racy." Namjae continued to offer new patches and ideas for how to adapt all the feedback.

It seems as though there are two issues getting in the way of Namjae's patches. The first would be the race conditions, and the second would be the fragility of the code itself – the likelihood that new race conditions could be inadvertently inserted. Overall, the feature itself – freezing writes – seems like something that no one opposes. So, you could expect some kind of implementation in the not-too-distant future.

The Author

The Linux kernel mailing list comprises the core of Linux development activities. Traffic volumes are immense, often reaching 10,000 messages in a week, and keeping up to date with the entire scope of development is a virtually impossible task for one person. One of the few brave souls to take on this task is Zack Brown.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Kernel News

    Chronicler Zack Brown reports on the latest news, views, dilemmas, and developments within the Linux kernel community.

  • Kernel News

    Chronicler Zack Brown reports on the latest news, views, dilemmas, and developments within the Linux kernel community.

  • Core Technologies

    Everyone wants to be root, because root can do anything. But in fact, its powers are now split. Learn more in this overview of capability sets.

  • Kernel News

    Chronicler Zack Brown reports on the latest news, views, dilemmas, and developments within the Linux kernel community.

  • Kernel News

     

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News