Any thoughts on whether the use of two different parse_reparse_point() functions with the same name is confusing? Should we change the name of one of them? in fs/smb/client/cifsproto.h there is one parse_reparse_point() declaration: int parse_reparse_point(struct reparse_data_buffer *buf, u32 plen, struct cifs_sb_info *cifs_sb, const char *full_path, struct cifs_open_info_data *data); And in fs/smb/client/cifsglob.h there is a different one; smb_version_operation --> parse_reparse_point() int (*parse_reparse_point)(struct cifs_sb_info *cifs_sb, const char *full_path, struct kvec *rsp_iov, struct cifs_open_info_data *data); /smb3-kernel$ git grep parse_reparse_point fs/smb/client/cifsglob.h: int (*parse_reparse_point)(struct cifs_sb_info *cifs_sb, fs/smb/client/cifsproto.h:int parse_reparse_point(struct reparse_data_buffer *buf, fs/smb/client/inode.c: } else if (iov && server->ops->parse_reparse_point) { fs/smb/client/inode.c: rc = server->ops->parse_reparse_point(cifs_sb, fs/smb/client/reparse.c:int parse_reparse_point(struct reparse_data_buffer *buf, fs/smb/client/reparse.c:int smb2_parse_reparse_point(struct cifs_sb_info *cifs_sb, fs/smb/client/reparse.c: return parse_reparse_point(buf, plen, cifs_sb, full_path, data); fs/smb/client/reparse.h:int smb2_parse_reparse_point(struct cifs_sb_info *cifs_sb, fs/smb/client/smb1ops.c:static int cifs_parse_reparse_point(struct cifs_sb_info *cifs_sb, fs/smb/client/smb1ops.c: return parse_reparse_point(buf, plen, cifs_sb, full_path, data); fs/smb/client/smb1ops.c: .parse_reparse_point = cifs_parse_reparse_point, fs/smb/client/smb2ops.c: .parse_reparse_point = smb2_parse_reparse_point, fs/smb/client/smb2ops.c: .parse_reparse_point = smb2_parse_reparse_point, fs/smb/client/smb2ops.c: .parse_reparse_point = smb2_parse_reparse_point, fs/smb/client/smb2ops.c: .parse_reparse_point = smb2_parse_reparse_point, -- Thanks, Steve