OpenCloudOS-Kernel/fs/ocfs2
Mark Fasheh 17ff785691 [PATCH] r/o bind mounts: clean up OCFS2 nlink handling
OCFS2 does some operations on i_nlink, then reverts them if some of its
operations fail to complete.  This does not fit in well with the
drop_nlink() logic where we expect i_nlink to stay at zero once it gets
there.

So, delay all of the nlink operations until we're sure that the operations
have completed.  Also, introduce a small helper to check whether an inode
has proper "unlinkable" i_nlink counts no matter whether it is a directory
or regular inode.

This patch is broken out from the others because it does contain some
logical changes.

Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-10-01 00:39:30 -07:00
..
cluster ocfs2: Remove i_generation from inode lock names 2006-09-24 13:50:46 -07:00
dlm [PATCH] r/o bind mount prepwork: inc_nlink() helper 2006-10-01 00:39:30 -07:00
Makefile ocfs2: add ext2 attributes 2006-09-20 15:48:39 -07:00
alloc.c ocfs2: Remove overzealous BUG_ON() 2006-09-20 16:00:54 -07:00
alloc.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
aops.c ocfs2: properly update i_mtime on buffered write 2006-09-20 15:53:05 -07:00
aops.h ocfs2: take data locks around extend 2006-05-17 14:38:47 -07:00
buffer_head_io.c ocfs2: implement directory read-ahead 2006-09-20 15:53:40 -07:00
buffer_head_io.h ocfs2: implement directory read-ahead 2006-09-20 15:53:40 -07:00
dcache.c ocfs2: Remove special casing for inode creation in ocfs2_dentry_attach_lock() 2006-09-24 13:50:45 -07:00
dcache.h ocfs2: Remove special casing for inode creation in ocfs2_dentry_attach_lock() 2006-09-24 13:50:45 -07:00
dir.c ocfs2: implement directory read-ahead 2006-09-20 15:53:40 -07:00
dir.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
dlmglue.c [PATCH] inode_diet: Replace inode.u.generic_ip with inode.i_private 2006-09-27 08:26:17 -07:00
dlmglue.h ocfs2: Remove i_generation from inode lock names 2006-09-24 13:50:46 -07:00
endian.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
export.c ocfs2: Remove i_generation from inode lock names 2006-09-24 13:50:46 -07:00
export.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
extent_map.c ocfs2: silence -EEXIST from ocfs2_extent_map_insert/lookup 2006-06-29 15:52:56 -07:00
extent_map.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
file.c [PATCH] Vectorize aio_read/aio_write fileop methods 2006-10-01 00:39:28 -07:00
file.h [PATCH] Make most file operations structs in fs/ const 2006-03-28 09:16:06 -08:00
heartbeat.c [PATCH] ocfs2: fix orphan recovery deadlock 2006-03-01 11:32:41 -08:00
heartbeat.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
inode.c [PATCH] inode-diet: Eliminate i_blksize from the inode structure 2006-09-27 08:26:18 -07:00
inode.h ocfs2: Remove i_generation from inode lock names 2006-09-24 13:50:46 -07:00
ioctl.c [PATCH] fs/ocfs2/ioctl.c should #include "ioctl.h" 2006-09-20 15:49:33 -07:00
ioctl.h ocfs2: add ext2 attributes 2006-09-20 15:48:39 -07:00
journal.c ocfs2: Remove i_generation from inode lock names 2006-09-24 13:50:46 -07:00
journal.h [PATCH] ocfs2: only checkpoint journal when asked to 2006-02-16 12:04:10 -08:00
localalloc.c ocfs2: allocation hints 2006-08-07 11:07:01 -07:00
localalloc.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
mmap.c ocfs2: Compile-time disabling of ocfs2 debugging output. 2006-06-29 14:48:30 -07:00
mmap.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
namei.c [PATCH] r/o bind mounts: clean up OCFS2 nlink handling 2006-10-01 00:39:30 -07:00
namei.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
ocfs1_fs_compat.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
ocfs2.h ocfs2: allocation hints 2006-08-07 11:07:01 -07:00
ocfs2_fs.h ocfs2: add ext2 attributes 2006-09-20 15:48:39 -07:00
ocfs2_lockid.h ocfs2: Add new cluster lock type 2006-09-24 13:50:42 -07:00
slot_map.c ocfs2: silence a debug print 2006-06-29 16:03:17 -07:00
slot_map.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
suballoc.c ocfs2: allocation hints 2006-08-07 11:07:01 -07:00
suballoc.h ocfs2: allocation hints 2006-08-07 11:07:01 -07:00
super.c ocfs2: Remove i_generation from inode lock names 2006-09-24 13:50:46 -07:00
super.h ocfs2: use __attribute__ format 2006-03-24 14:58:24 -08:00
symlink.c ocfs2: silence ENOENT during lookup of broken links 2006-06-29 15:59:52 -07:00
symlink.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
sysfile.c ocfs2: Remove i_generation from inode lock names 2006-09-24 13:50:46 -07:00
sysfile.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
uptodate.c ocfs2: implement directory read-ahead 2006-09-20 15:53:40 -07:00
uptodate.h ocfs2: implement directory read-ahead 2006-09-20 15:53:40 -07:00
ver.c [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
ver.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
vote.c ocfs2: Remove the dentry vote 2006-09-24 13:50:43 -07:00
vote.h ocfs2: Remove the dentry vote 2006-09-24 13:50:43 -07:00