Wrapfs: A Stackable Passthru File System

Wrapfs is a simple stackable passthru file system for Linux. It is a small null-layer stackable file system, under 2500 lines of code, excluding about 400 LoC in optional debugging code: compared to, say, eCryptfs and Unionfs, each of which are over 10,000 LoC. As such, it is simple and easy to read and understand.

Wrapfs is useful for several reasons. First, as a platform to test and debug generic stacking problems in other Linux stackable file systems. Second, as a way to test VFS enhancements to better support stacking in Linux. Third, many people like to experiment with in-kernel file system ideas as a prototype; Wrapfs is an ideal small template from which one could modify the code to create new functionality. Fourth, Wrapfs is a very useful teaching tool (often used as a starting point for graduate class assignments).

Software Download:

You can download patches for specific versions of Linux kernels. You may also clone a Git tree of the latest development Linux kernel, with Wrapfs patches, from our own Git server. Older versions of Wrapfs can be found as part of the larger FiST project.

For example, to clone the latest Wrapfs git repository, issue this command:

$ git clone git://git.fsl.cs.sunysb.edu/wrapfs-latest.git Or, to clone a wrapfs repository for a specific version (e.g., 5.17.y): $ git clone git://git.fsl.cs.sunysb.edu/wrapfs-5.17.y.git

Browsable Git Versions of Wrapfs (see "wrapfs" branch)

http://git.fsl.cs.sunysb.edu/?p=wrapfs-latest.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.17.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.16.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.15.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.14.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.13.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.12.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.11.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.10.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.9.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.8.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.7.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.6.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.5.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.4.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.3.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.2.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.1.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-5.0.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.20.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.19.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.18.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.17.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.16.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.15.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.14.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.13.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.12.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.11.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.10.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.9.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.8.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.7.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.6.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.5.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.4.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.3.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.2.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.1.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-4.0.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.19.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.18.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.17.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.16.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.15.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.14.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.13.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.12.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.11.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.10.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.9.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.8.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.7.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.6.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.5.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.4.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.3.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.2.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.1.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-3.0.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-2.6.39.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-2.6.38.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-2.6.37.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-2.6.36.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-2.6.35.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-2.6.34.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-2.6.33.y.git
http://git.fsl.cs.sunysb.edu/?p=wrapfs-2.6.32.y.git

Documentation:

Read the latest wrapfs documentation which is also available in the Git trees under Documentation/filesystems/wrapfs.txt.

Mailing List:

You may subscribe to wrapfs mailing list. There's only one list (for now), intended for users and developers. Bug reports and patches should be submitted to the mailing list.

Conference and Workshop Papers:

# Title (click for html version) Formats Published In Date Comments
1 FiST: A Language for Stackable File Systems PS PDF BibTeX Usenix Technical Conference Jun 2000  
2 Extending File Systems Using Stackable Templates PS PDF BibTeX Usenix Technical Conference Jun 1999  
3 A Stackable File System Interface For Linux PS PDF BibTeX LinuxExpo 99 May 1999  

Past Students:

# Name (click for home page) Program Period Current Location
1 Shrikar Archak MS Sep 2009 - Dec 2010 Senior Software Engineer, Core Deduplication Filesystem group, Datadomain/EMC
2 Rohit Kumar MS Jan 2018 - Dec 2018 Software Development Engineer II, Amazon Services, Amazon Services (Seattle, WA)
3 Li Mengyang MS May 2014 - Dec 2014 Member of Technical Staff, Foundation Group, Nutanix (San Jose, CA)
4 Dongju Ok MS Sep 2014 - May 2016 Software Engineer, Application Team, Commvault Systems Inc. (Tinton Falls, NJ)