OpenAFS CVS Commit: openafs/src/afs/LINUX by shadow

cvs@penn.central.org cvs@penn.central.org
Tue, 30 Jan 2001 21:28:15 EST


Update of /usr1/cvs/openafs/src/afs/LINUX
In directory penn.central.org:/usr0/build/openafs/openafs/src/afs/LINUX

Modified Files:
	osi_file.c osi_misc.c osi_vfsops.c osi_vnodeops.c 
Log Message:
DELTA linux-iput-and-glock-changes-20010130
AUTHOR chas@cmf.nrl.navy.mil
". 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"


--- DELTA config follows ---
linux-iput-and-glock-changes-20010130 openafs/src/afs/LINUX/osi_file.c 1.5 1.6
linux-iput-and-glock-changes-20010130 openafs/src/afs/LINUX/osi_misc.c 1.4 1.5
linux-iput-and-glock-changes-20010130 openafs/src/afs/LINUX/osi_vfsops.c 1.4 1.5
linux-iput-and-glock-changes-20010130 openafs/src/afs/LINUX/osi_vnodeops.c 1.9 1.10