FIXES 6002
The appended patch resets afs_globalVFS to NULL if /afs cannot be mounted,
eg., if no cell server is accessible.
There are two advantages:
- it is possible to do "afsd -shutdown" to terminate all daemons
- more importantly, if /afs cannot be mounted, the linux kernel will
probably free the superblock, ie the memory pointed to afs_globalVFS.
sb->s_maxbytes = MAX_NON_LFS;
#endif
code = afs_root(sb);
- if (code)
+ if (code) {
+ afs_globalVFS = NULL;
#if defined(AFS_LINUX26_ENV)
- module_put(THIS_MODULE);
+ module_put(THIS_MODULE);
#else
- MOD_DEC_USE_COUNT;
+ MOD_DEC_USE_COUNT;
#endif
+ }
#if !defined(AFS_LINUX24_ENV)
unlock_super(sb);