linux/Documentation/filesystems
Takashi Sato c4be0c1dc4 filesystem freeze: add error handling of write_super_lockfs/unlockfs
Currently, ext3 in mainline Linux doesn't have the freeze feature which
suspends write requests.  So, we cannot take a backup which keeps the
filesystem's consistency with the storage device's features (snapshot and
replication) while it is mounted.

In many case, a commercial filesystem (e.g.  VxFS) has the freeze feature
and it would be used to get the consistent backup.

If Linux's standard filesystem ext3 has the freeze feature, we can do it
without a commercial filesystem.

So I have implemented the ioctls of the freeze feature.
I think we can take the consistent backup with the following steps.
1. Freeze the filesystem with the freeze ioctl.
2. Separate the replication volume or create the snapshot
   with the storage device's feature.
3. Unfreeze the filesystem with the unfreeze ioctl.
4. Take the backup from the separated replication volume
   or the snapshot.

This patch:

VFS:
Changed the type of write_super_lockfs and unlockfs from "void"
to "int" so that they can return an error.
Rename write_super_lockfs and unlockfs of the super block operation
freeze_fs and unfreeze_fs to avoid a confusion.

ext3, ext4, xfs, gfs2, jfs:
Changed the type of write_super_lockfs and unlockfs from "void"
to "int" so that write_super_lockfs returns an error if needed,
and unlockfs always returns 0.

reiserfs:
Changed the type of write_super_lockfs and unlockfs from "void"
to "int" so that they always return 0 (success) to keep a current behavior.

Signed-off-by: Takashi Sato <t-sato@yk.jp.nec.com>
Signed-off-by: Masayuki Hamaguchi <m-hamaguchi@ys.jp.nec.com>
Cc: <xfs-masters@oss.sgi.com>
Cc: <linux-ext4@vger.kernel.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Dave Kleikamp <shaggy@austin.ibm.com>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Alasdair G Kergon <agk@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-01-09 16:54:42 -08:00
..
configfs docsrc: build Documentation/ sources 2008-08-12 16:07:30 -07:00
00-INDEX Documentation: move rpc-cache.txt to filesystems/ 2008-04-11 13:20:52 -06:00
9p.txt 9p: add virtio transport 2007-10-23 13:47:31 -05:00
Exporting exportfs: update documentation 2007-10-22 08:13:21 -07:00
Locking filesystem freeze: add error handling of write_super_lockfs/unlockfs 2009-01-09 16:54:42 -08:00
adfs.txt Fix typos in /Documentation : 'U-Z' 2006-11-30 04:58:40 +01:00
affs.txt [PATCH] kernel Doc/ URL corrections 2005-11-22 09:14:30 -08:00
afs.txt [AFS]: Update the AFS fs documentation. 2007-04-26 15:57:43 -07:00
autofs4-mount-control.txt autofs4: device node ioctl documentation 2008-10-16 11:21:39 -07:00
automount-support.txt VFS: Unexport do_kern_mount() and clean up simple_pin_fs() 2006-06-09 09:34:16 -04:00
befs.txt Fix typos in Documentation/: 'Q'-'R' 2006-10-03 22:54:15 +02:00
bfs.txt remove mention of CONFIG_KMOD from documentation 2008-07-22 19:24:29 +10:00
btrfs.txt Btrfs: Add Documentation/filesystem/btrfs.txt, remove old COPYING 2009-01-07 09:54:24 -05:00
cifs.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
coda.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cramfs.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dentry-locking.txt [PATCH] VFS: split dentry locking documentation 2005-11-07 07:53:56 -08:00
devpts.txt Document usage of multiple-instances of devpts 2009-01-02 10:19:36 -08:00
directory-locking Documentation: Fix up docs still talking about i_sem 2007-05-24 10:16:17 -07:00
dlmfs.txt Fix typos in Documentation/: 'D'-'E' 2006-10-03 22:47:42 +02:00
dnotify.txt Documentation: move dnotify.txt to filesystems/ 2008-02-07 08:42:17 -08:00
ecryptfs.txt eCryptfs: Move ecryptfs docs into Documentation/filesystems/ 2007-07-17 10:23:08 -07:00
ext2.txt Fix typos in Documentation/: 'N'-'P' 2006-10-03 22:52:05 +02:00
ext3.txt ext3: add an option to control error handling on file data 2008-10-20 08:52:37 -07:00
ext4.txt ext4: Remove "extents" mount option 2009-01-06 14:53:16 -05:00
fiemap.txt vfs: vfs-level fiemap interface 2008-10-08 19:44:18 -04:00
files.txt fix f_count description in Documentation/filesystems/files.txt 2008-12-31 18:07:42 -05:00
fuse.txt [PATCH] fuse: fix typo 2006-12-30 10:56:45 -08:00
gfs2-glocks.txt [GFS2] Glock documentation 2008-06-27 09:39:53 +01:00
gfs2.txt [GFS2] Update documentation 2006-04-25 15:44:04 -04:00
hfs.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hfsplus.txt Documentation: document HFSPlus 2007-07-31 15:39:38 -07:00
hpfs.txt misc doc and kconfig typos 2007-05-09 08:58:15 +02:00
inotify.txt [PATCH] inotify (5/5): update kernel documentation 2006-06-20 05:25:19 -04:00
isofs.txt isofs: implement dmode option 2008-02-08 09:22:38 -08:00
jfs.txt JFS: document uid, gid, and umask mount options in jfs.txt 2007-03-09 10:27:31 -06:00
locks.txt Documentation: move locks.txt in filesystems/ 2007-10-09 18:32:45 -04:00
mandatory-locking.txt locks: add warning about mandatory locking races 2007-10-09 18:32:45 -04:00
ncpfs.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nfs-rdma.txt nfs: rewrap NFS/RDMA documentation to 80 lines 2008-06-30 15:24:43 -04:00
nfsroot.txt doc: typo in Documentation/filesystems/nfsroot.txt 2008-10-16 11:21:31 -07:00
ntfs.txt NTFS: update homepage 2008-09-02 19:21:37 -07:00
ocfs2.txt ocfs2: add mount option and Kconfig option for acl 2009-01-05 08:36:52 -08:00
omfs.txt omfs: add filesystem documentation 2008-07-26 12:00:05 -07:00
porting iget: remove iget() and the read_inode() super op as being obsolete 2008-02-07 08:42:29 -08:00
proc.txt Merge branch 'proc-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc 2009-01-07 12:01:06 -08:00
quota.txt quota: documentation for sending "below quota" messages via netlink and tiny doc update 2008-08-12 16:07:27 -07:00
ramfs-rootfs-initramfs.txt Trivial Documentation/filesystems/ramfs-rootfs-initramfs.txt fix 2008-11-30 11:40:56 -08:00
relay.txt relay: add buffer-only channels; useful for early logging 2008-07-26 12:00:04 -07:00
romfs.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rpc-cache.txt Documentation: move rpc-cache.txt to filesystems/ 2008-04-11 13:20:52 -06:00
seq_file.txt Document seq_path_root() 2008-04-25 11:56:37 -06:00
sharedsubtree.txt Documentation: move sharedsubtrees.txt to filesystems/ 2008-02-07 08:42:17 -08:00
smbfs.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
spufs.txt Fix typos in /Documentation : 'U-Z' 2006-11-30 04:58:40 +01:00
squashfs.txt Squashfs: documentation 2009-01-05 08:46:29 +00:00
sysfs-pci.txt x86: PAT export resource_wc in pci sysfs 2008-06-12 10:12:42 +02:00
sysfs.txt sysfs: add /sys/dev/{char,block} to lookup sysfs path by major:minor 2008-07-21 21:54:40 -07:00
sysv-fs.txt [PATCH] fs/sysv/: doc cleanup 2006-12-07 08:39:44 -08:00
tmpfs.txt mempolicy: update NUMA memory policy documentation 2008-04-28 08:58:19 -07:00
ubifs.txt UBIFS: fix numerous spelling mistakes 2008-12-31 14:13:25 +02:00
udf.txt [PATCH] Update udf documentation to reflect current state of read/write support 2006-11-16 11:43:38 -08:00
ufs.txt [PATCH] ufs2 write: mount as rw 2007-02-12 09:48:40 -08:00
vfat.txt fat: Fix ATTR_RO for directory 2008-11-06 15:41:21 -08:00
vfs.txt filesystem freeze: add error handling of write_super_lockfs/unlockfs 2009-01-09 16:54:42 -08:00
xfs.txt [XFS] remove restricted chown parameter from xfs linux 2008-10-30 18:30:09 +11:00
xip.txt DOC: update xip method info 2008-11-12 17:17:17 -08:00