code: def returnFileSize(self, fileStoreID, cachedFileSource, lockFileHandle,
                         fileAlreadyCached=False):
          
          fileSize = os.stat(cachedFileSource).st_size
          cacheInfo = self._CacheState._load(self.cacheStateFile)
          # If the file isn't cached, add the size of the file to the cache pool. However, if the
          # nlink threshold is not 1 -  i.e. it is 2 (it can only be 1 or 2), then don't do this
          # since the size of the file is accounted for by the file store copy.
          if not fileAlreadyCached and self.nlinkThreshold == 1:
              cacheInfo.cached += fileSize
          cacheInfo.sigmaJob -= fileSize
          if not cacheInfo.isBalanced():
              self.logToMaster('CACHE: The cache was not balanced on returning file size',
                               logging.WARN)
          # Add the info to the job specific cache info
          jobState = self._JobState(cacheInfo.jobState[self.jobID])
          jobState.addToJobSpecFiles(fileStoreID, cachedFileSource, fileSize, True)
          cacheInfo.jobState[self.jobID] = jobState.__dict__
          cacheInfo.write(self.cacheStateFile)
docs: Returns the fileSize of the file described by fileStoreID to the job requirements pool
          if the file was recently added to, or read from cache (A job that reads n bytes from
          cache doesn't really use those n bytes as a part of it's job disk since cache is already
          accounting for that disk space).
  
          :param fileStoreID: fileStore ID of the file bein added to cache
          :param str cachedFileSource: File being added to cache
          :param file lockFileHandle: Open file handle to the cache lock file
          :param bool fileAlreadyCached: A flag to indicate whether the file was already cached or
                 not. If it was, then it means that you don't need to add the filesize to cache again.