/// <exception cref="System.IO.IOException"/> private static ContentSummary GetContentSummaryInt(FSDirectory fsd, INodesInPath iip) { fsd.ReadLock(); try { INode targetNode = iip.GetLastINode(); if (targetNode == null) { throw new FileNotFoundException("File does not exist: " + iip.GetPath()); } else { // Make it relinquish locks everytime contentCountLimit entries are // processed. 0 means disabled. I.e. blocking for the entire duration. ContentSummaryComputationContext cscc = new ContentSummaryComputationContext(fsd, fsd.GetFSNamesystem(), fsd.GetContentCountLimit(), fsd.GetContentSleepMicroSec() ); ContentSummary cs = targetNode.ComputeAndConvertContentSummary(cscc); fsd.AddYieldCount(cscc.GetYieldCount()); return(cs); } } finally { fsd.ReadUnlock(); } }