In case anyone's curious here is my list of filesystems which I think should have generic_file_checkpoint fops (31): adfs affs befs bfs btrfs cramfs ecryptfs efs fat freevxfs hfs hfsplus hpfs hppfs isofs jffs2 jfs minix ntfs omfs openpromfs qnx4 ramfs reiserfs romfs squashfs sysv ubifs udf ufs xfs I also added the checkpoint operation to generic_ro_fops since it's used only in the set of filesystems listed above. For the curious: befs cramfs efs freevxfs isofs romfs squashfs I've got the patches split out per-filesystem even though they are incredibly tiny. I'll keep rebasing them on the latest git trees from Dave's kernel.org tree until the checkpoint fop set is ready to be sent to Oren. The net result is I haven't added any checkpoint operations to filesystems outside the lists above. Open ramfs directories aren't checkpointable because, like many special filesystems, the directories are kept in the dcache with simple_dir_operations from libfs.c. Filesystems that use it include: autofs cifs debugfs devpts fuse hugetlbfs ocfs2 ramfs I think I could fix this with a private copy of simple_dir_operations but I wasn't certain it would work or that it was the best way to handle it. So I've postponed full ramfs checkpoint support. This means that ramfs files are always checkpointable but the directories aren't. A few "regular" filesystems have /proc or debugfs contents (many of them using the seq_file API). These tend to contain information about the filesystem or special control interfaces (btrfs). I'm not quite sure what we'll want to do with these for now. I think eventually we'd add a checkpoint operation to the seq_file API. My hunch is the majority of seq_files won't be checkpointable. I also suspect that the control files won't usually care what the file position is so we may be able to add generic_file_checkpoint to those after a more careful review of each one. It may be easier to remember what's left "TODO" in fs/*: 9p afs autofs[4] cifs coda configfs debugfs devpts ext[234] (Dave's handling this) (anything that uses dlm) fuse gfs2 hostfs hugetlbfs (anything that uses jbd[2]) ncpfs nfs (I've got patches for NFS but I don't trust them yet and they lack support for the seq_file interfaces in /proc) ocfs2 proc (HUGE) ramfs smbfs (deprecated, so .. never?) sysfs bad_inode.c (unused outside bad_inode.c so low priority??) binfmt_misc.c block_dev.c char_dev.c (def_chr_fops) epoll (eventpoll.c) eventfd.c fifo.c filesystems.c (/proc/filesystems) no-block.c notify/* select.c signalfd.c locks.c pipe.c I haven't looked outside of fs/* for anything that uses struct file_operations -- I'm assuming most of that is for "irregular" filesystems :). Cheers, -Matt _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers