Revision a0cff57bb2a41cb9cbf13d3203097b4156d8c0ae authored by Davidlohr Bueso on 13 September 2017, 20:08:21 UTC, committed by Paolo Bonzini on 15 September 2017, 14:57:12 UTC
During code inspection, the following potential race was seen:

CPU0   	    		    	     	CPU1
kvm_async_pf_task_wait			apf_task_wake_one
					  [L] swait_active(&n->wq)
  [S] prepare_to_swait(&n.wq)
  [L] if (!hlist_unhahed(&n.link))
	schedule()			  [S] hlist_del_init(&n->link);

Properly serialize swait_active() checks such that a wakeup is
not missed.

Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
1 parent cc1b468
Raw File
Kconfig
config GFS2_FS
	tristate "GFS2 file system support"
	depends on (64BIT || LBDAF)
	select FS_POSIX_ACL
	select CRC32
	select QUOTACTL
	help
	  A cluster filesystem.

	  Allows a cluster of computers to simultaneously use a block device
	  that is shared between them (with FC, iSCSI, NBD, etc...).  GFS reads
	  and writes to the block device like a local filesystem, but also uses
	  a lock module to allow the computers coordinate their I/O so
	  filesystem consistency is maintained.  One of the nifty features of
	  GFS is perfect consistency -- changes made to the filesystem on one
	  machine show up immediately on all other machines in the cluster.

	  To use the GFS2 filesystem in a cluster, you will need to enable
	  the locking module below. Documentation and utilities for GFS2 can
	  be found here: http://sources.redhat.com/cluster

	  The "nolock" lock module is now built in to GFS2 by default. If
	  you want to use the DLM, be sure to enable IPv4/6 networking.

config GFS2_FS_LOCKING_DLM
	bool "GFS2 DLM locking"
	depends on (GFS2_FS!=n) && NET && INET && (IPV6 || IPV6=n) && \
		CONFIGFS_FS && SYSFS && (DLM=y || DLM=GFS2_FS)
	help
	  Multiple node locking module for GFS2

	  Most users of GFS2 will require this. It provides the locking
	  interface between GFS2 and the DLM, which is required to use GFS2
	  in a cluster environment.
back to top