mirror of
https://git.openafs.org/openafs.git
synced 2025-01-31 05:27:44 +00:00
Chas Williams
5293aa3561
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"
Description
Languages
C
72.2%
C++
20.1%
Makefile
1.4%
Perl
1.2%
Rich Text Format
1%
Other
3.7%