using a spinlock per cpu for superblock counter exclusion results in
a preempt counter overflow at 256p and above. Change the exclusion mechanism
to use atomic bit operations and busy wait loops to emulate the spin
lock exclusion mechanism but without the preempt count issues.
Date: Wed Mar 1 23:52:17 AEDT 2006
Workarea: chook.melbourne.sgi.com:/build/dgc/isms/2.6.x-xfs
Inspected by: nathans
The following file(s) were checked into:
longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb
Modid: xfs-linux-melb:xfs-kern:25338a
fs/xfs/xfs_mount.h - 1.216 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.h.diff?r1=text&tr1=1.216&r2=text&tr2=1.215&f=h
- Use a flag bit for per-cpu counter exclusion rather than a spin lock
to prevent preempt count overflows.
fs/xfs/xfs_mount.c - 1.372 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.c.diff?r1=text&tr1=1.372&r2=text&tr2=1.371&f=h
- Use a flag bit for per-cpu counter exclusion rather than a spin lock
to prevent preempt count overflows.
fs/xfs/linux-2.6/xfs_linux.h - 1.142 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_linux.h.diff?r1=text&tr1=1.142&r2=text&tr2=1.141&f=h
- Per-cpu superblock counter locks need to busy wait.
|