Re: [PATCH] ceph: Add FScache support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2013-07-09 at 11:33 +0100, David Howells wrote:
> Milosz Tanski <milosz@xxxxxxxxx> wrote:
> 
> > It looks like both the cifs and NFS code do not bother with any
> > locking around cifs_fscache_set_inode_cookie. Is there no concern over
> > multiple open() calls racing to create the cookie in those
> > filesystems?
> 
> Yeah...  That's probably wrong.  AFS obviates the need for special locking by
> doing it in afs_iget().
> 
> Hmmm...  I think I've just spotted what might be the cause of pages getting
> marked PG_fscache whilst belonging to the allocator.
> 
> 	void nfs_fscache_set_inode_cookie(struct inode *inode, struct file *filp)
> 	{
> 		if (NFS_FSCACHE(inode)) {
> 			nfs_fscache_inode_lock(inode);
> 			if ((filp->f_flags & O_ACCMODE) != O_RDONLY)
> 				nfs_fscache_disable_inode_cookie(inode);
> 			else
> 				nfs_fscache_enable_inode_cookie(inode);
> 			nfs_fscache_inode_unlock(inode);
> 		}
> 	}
> 
> can release the cookie whilst reads are in progress on it when an inode being
> read suddenly changes to an inode being written.  We need some sort of
> synchronisation on that there.

Change fscache_uncache_all_inode_pages to always take the page lock,
check the value of page->mapping, and wait for outstanding writes to
finish before trying to release PG_fscache?

-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@xxxxxxxxxx
www.netapp.com
��.n��������+%������w��{.n����z��u���ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f





[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux