The nfs refcache uses a timer to mark the superblock as
dirty whenever items are left in the refcache, to ensure
that on the next sync, more items will be purged.
The previous implementation had 2 problems - the timer
was not deleted on unmount, so it could go off and
cause an oops if the superblock pointer had gone away
after an unmount. Also, we really needed a timer per
filesystem, not one global timer.
This mod adds the timer to the xfs_mount_t struct, so
there is 1 per fs, and also deletes the timer on unmount.
Date: Sun Apr 7 07:12:06 PDT 2002
Workarea:
stout.americas.sgi.com:/localhome/src/sandeen/2.4.x-xfs/workarea-refcache
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs
Modid: xfs-cmds:slinx:115908a
cmd/xfsprogs/include/xfs_mount.h - 1.13
- add m_sbdirty_timer to mount struct
Modid: 2.4.x-xfs:slinx:115908b
linux/fs/xfs/xfs_rw.c - 1.354
- use a per-fs sbdirty timer rather than one global timer
linux/fs/xfs/xfs_vfsops.c - 1.340
- delete sbdirty timer on unmount
linux/fs/xfs/xfs_mount.h - 1.138
- add m_sbdirty_timer to mount struct
linux/fs/xfs/xfs_mount.c - 1.278
- set up sbdirty timer in xfs_mountfs
|