private < T extends INode > T addNode ( String src , T child , long childDiskspace , boolean inheritPermission ) throws QuotaExceededException { byte [ ] [ ] components = INode . getPathComponents ( src ) ; byte [ ] path = components [ components . length - 1 ] ; child . setLocalName ( path ) ; cacheName ( child ) ; INode [ ] inodes = new INode [ components . length ] ; writeLock ( ) ; try { rootDir . getExistingPathINodes ( components , inodes ) ; return addChild ( inodes , inodes . length - 1 , child , childDiskspace , inheritPermission ) ; } finally { writeUnlock ( ) ; } }
Add a node child to the namespace . The full path name of the node is src . childDiskspace should be - 1 if unknown . QuotaExceededException is thrown if it violates quota limit