func GetXAttr(volume *gfapi.Volume, fileNameOrFd interface{}, attr string, value []byte) (int64, error) { var err error var ret int64 switch v := fileNameOrFd.(type) { case string: ret, err = volume.Getxattr(v, attr, value) case *gfapi.File: ret, err = v.Getxattr(attr, value) case gfapi.Fd: ret, err = v.Fgetxattr(attr, value) } return ret, err }