Environment
Novell Open Enterprise Server 2 (OES 2) Linux Support Pack 1
Novell Open Enterprise Server 2 (OES 2) Linux Support Pack 2
Novell Open Enterprise Server 2 (OES 2) Linux Support Pack 2
Situation
An NCP volume is created on an NFS share. When initially created, the volume mounts fine and works as expected. After the volume is dismounted and re-mounted (because of a reboot, for example), the volume will not mount, returning rc=150.
The /var/opt/novell/log/ncpserv.log shows the following errors:
AddVolumeToDirCache opening volume trustee temp file failed rc=13
MountVolumesRPCHandler: ChangeVolumeStatus <VOLNAME> rc=150
The /var/opt/novell/log/ncpserv.log shows the following errors:
AddVolumeToDirCache opening volume trustee temp file failed rc=13
MountVolumesRPCHandler: ChangeVolumeStatus <VOLNAME> rc=150
Resolution
The ._NETWARE directory at the root of the NCP share was read-only. NCP requires r/w access to these files to operate.
In this case, the NAS configured the NFS share as a WORM (Write Once Read Many) share. We were able to initially create the files but couldn't modify them afterward. The server policy was changed to allow the ._NETWARE directory to be R/W.
In this case, the NAS configured the NFS share as a WORM (Write Once Read Many) share. We were able to initially create the files but couldn't modify them afterward. The server policy was changed to allow the ._NETWARE directory to be R/W.
Additional Information
When NCP mounts a volume it performs several operations revolving around the ._NETWARE directory.
- Create the ._NETWARE directory (safely handles EEXIST return code)
- Open ._NETWARE/.trustee_work.dat with O_RDWR|O_CREAT|O_TRUNC flags
- Open ._NETWARE/.trustee_database.xml with O_RDWR flag
- Read information from the ._NETWARE/.trustee_database.xml file
- Opens and truncates ._NETWARE/.trustee_database_new.xml wih O_RDRW|O_CREAT flags
- Truncate ._NETWARE/.trustee_work.dat
- Write data to the ._NETWARE/.trustee_work.dat and ._NETWARE/.trustee_database_new.xml files (volume trustee and inherited rights mask data)
- Rename ._NETWARE/.trustee_database.xml to ._NETWARE/.trustee_database_bakup.xml
- Rename ._NETWARE/.trustee_database_new.xml to ._NETWARE/.trustee_database.xml
- Unlink ._NETWARE/.trustee_database_bakup.xml