code: protected void getFields(Properties props, 
                             StorageDirectory sd 
                             ) throws IOException {
      String sv, st, sid, sct;
      sv = props.getProperty(LAYOUT_VERSION);
      st = props.getProperty(STORAGE_TYPE);
      sid = props.getProperty(NAMESPACE_ID);
      sct = props.getProperty(CHECK_TIME);
      if (sv == null || st == null || sid == null || sct == null)
        throw new InconsistentFSStateException(sd.root,
                                               "file " + STORAGE_FILE_VERSION + " is invalid.");
      int rv = Integer.parseInt(sv);
      NodeType rt = NodeType.valueOf(st);
      int rid = Integer.parseInt(sid);
      long rct = Long.parseLong(sct);
      if (!storageType.equals(rt) ||
          !((namespaceID == 0) || (rid == 0) || namespaceID == rid))
        throw new InconsistentFSStateException(sd.root,
                                               "is incompatible with others. " +
                                               " namespaceID is " + namespaceID +
                                               " and rid is " + rid + "," +
                                               " storage type is " + storageType + 
                                               " but rt is " + rt);
      if (rv < FSConstants.LAYOUT_VERSION) // future version
        throw new IncorrectVersionException(rv, "storage directory " 
                                            + sd.root.getCanonicalPath());
      layoutVersion = rv;
      storageType = rt;
      namespaceID = rid;
      cTime = rct;
    }
docs: Get common storage fields.
  Should be overloaded if additional fields need to be get.
  
  @param props
  @throws IOException