linux-iput-and-glock-changes-20010130
authorChas Williams <chas@cmf.nrl.navy.mil>
Wed, 31 Jan 2001 02:28:11 +0000 (02:28 +0000)
committerDerrick Brashear <shadow@dementia.org>
Wed, 31 Jan 2001 02:28:11 +0000 (02:28 +0000)
commit5293aa35617a6ad35980ce16fdf492ea960cc18a
treea8a3378130e2a272713b1b3009b0bfa2de184aaf
parent1b428f375e5366d8ef4179a1a47cd9aad98e2833
linux-iput-and-glock-changes-20010130

". afs_dentry_iput is essentially osi_iput, so it now calls osi_iput
  it wasnt locking before checking i_count (and osi_iput didnt either)
  osi_iput now AFS_GLOCK's.  to do this afs_delete_inode was split
  into afs_delete_inode (which does the locking) and osi_clear_inode
  before osi_iput called afs_delete_inode, which since it wanted
  to hold AFS_GLOCK, osi_iput couldnt call AFS_GLOCK.  this seems
  to have cured the problem i saw (running multiple 'ls -R &' would
  cause a bad iput w/o fail) and i hope it fixes it otherwise.
  its possible vc->lock should be held inside osi_clear_inode.

. removed osi_notify_change (i added during 2.4.0 development) and
  now i just call inode_change_ok/inode_setattr.  the 2.4.0
  notify_change checks the dentry parent (which doenst exist for
  the cache inodes)

. moved the locks around inside writepage, writepage_sync, commit_write.
  the guy next door complained about pauses while running afs.  i think
  this addresses those issues.  apparently you only need to lock_kernel()
  during commit_write().  in order to get lock_kernel() inside AFS_GLOCK()
  the AFS_GLOCK() was moved out of writepage_sync and into writepage
  and commit_write"
src/afs/LINUX/osi_file.c
src/afs/LINUX/osi_misc.c
src/afs/LINUX/osi_vfsops.c
src/afs/LINUX/osi_vnodeops.c