As I said... there are no means to reject a downconvert. May I suggest a different approach. Look at DCACHE_NFSFS_RENAMED. That's nfs's silly rename hack. NFS prevents unlinking of a file by setting this dentry flag.
Investigate how we can set/unset this flag in the mount/umount path. Or, another flag that is specific to clustered file systems. Also, see gfs2. See how it handles this. Sunil Dong Yang Li wrote: > but just re-queuing the downconvert when the dentry is used as a mount point > won't work for this case, > because when the other node wanna up-convert its dentry_lock to EX, it has > already got the EX lock on > > the inode of the dentry's parent. so when we wanna get a PR lock on the > inode(this could happen during a umount on the mountpoint), > we'll block on that and both the nodes will wait for each other forever. I > see two options on this: > 1. make a node could reject the downconvert when it requires so. > 2. blocking the other node when it wanna unlink the dentry we used as a mount > point, > and make us could get a PR on the inode of the mount point's parent, so after > umount > we can finally do the downconvert and unblock the other node. > Comments? > Br, > Li Dongyang > >>>> Sunil Mushran 03/25/10 2:51 AM >>> > While the fs can delay the downconvert of any resource, there are > no means of explicitly rejecting it. And no rejection means the > requesting node will keep waiting for the downconvert. > > Li Dongyang wrote: >> Hi, list >> I've read >> http://opendlm.sourceforge.net/cvsmirror/opendlm/docs/dlmbook_final.pdf but >> still confused, why a node can not reject a downconvert when it gets a bast >> in >> o2dlm? >> and if we can, we could fix this bug: >> http://oss.oracle.com/bugzilla/show_bug.cgi?id=1075 >> ocfs2: a busy mount point can be removed from another node >> by adding a check in check_downconvert callback: >> if the dentry->d_mounted is not zero, then just reject the downconvert. >> >> Any hints? :-) >> Thanks >> >> _______________________________________________ >> Ocfs2-devel mailing list >> [email protected] >> http://oss.oracle.com/mailman/listinfo/ocfs2-devel >> > > _______________________________________________ Ocfs2-devel mailing list [email protected] http://oss.oracle.com/mailman/listinfo/ocfs2-devel
