[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-xfs
Subject:    TAKE 923981 - pb_flags access is racy
From:       dgc () sgi ! com (David Chinner)
Date:       2005-08-24 6:23:19
Message-ID: 20050824062319.A8CF049B49F3 () chook ! melbourne ! sgi ! com
[Download RAW message or body]

Fix racy access to pb_flags.

pagebuf_rele() modified pb_flags after the pagebuf had been unlocked
if the buffer was delwri. At high load, this could result in a race
when the superblock was being synced that would result the flags
being incorrect and the iodone functions being executed incorrectly.
This then leads to iclog callback failures or AIL list corruptions
resulting in filesystem shutdowns.

Date:  Wed Aug 24 16:22:21 AEST 2005
Workarea:  chook.melbourne.sgi.com:/build/dgc/isms/xfs-linux
Inspected by:  nathans,hch

The following file(s) were checked into:
  longdrop.melbourne.sgi.com:/isms/xfs-kern/xfs-linux-melb


Modid:  xfs-linux-melb:xfs-kern:23616a
xfsidbg.c - 1.280 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfsidbg.c.diff?r1=text&tr1=1.280&r2=text&tr2=1.279&f=h
                
	- Add _PBF_DELWRI_Q flag to kdb pagebuf output.

linux-2.6/xfs_buf.h - 1.105 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_buf.h.diff?r1=text&tr1=1.105&r2=text&tr2=1.104&f=h
                
	- Add _PBF_DELWRI_Q flag.

linux-2.6/xfs_buf.c - 1.201 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_buf.c.diff?r1=text&tr1=1.201&r2=text&tr2=1.200&f=h
                
	- Move delwri buffer processing to before the buffer is unlocked
	  so flags are modified while the buffer is still locked.
	  Also use a flag to keep track of whether we are already in
	  the delwri queue.

linux-2.4/xfs_buf.h - 1.110 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.4/xfs_buf.h.diff?r1=text&tr1=1.110&r2=text&tr2=1.109&f=h
                
	- Add _PBF_DELWRI_Q flag.

linux-2.4/xfs_buf.c - 1.207 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.4/xfs_buf.c.diff?r1=text&tr1=1.207&r2=text&tr2=1.206&f=h
                
	- Move delwri buffer processing to before the buffer is unlocked
	  so flags are modified while the buffer is still locked.
	  Also use a flag to keep track of whether we are already in
	  the delwri queue.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic