On Thu, May 3, 2018 at 10:31 PM, Luis Henriques <lhenriques@xxxxxxxx> wrote: > "Yan, Zheng" <ukernel@xxxxxxxxx> writes: > >> On Thu, May 3, 2018 at 6:18 PM, Luis Henriques <lhenriques@xxxxxxxx> wrote: >>> "Yan, Zheng" <zyan@xxxxxxxxxx> writes: >>> >>> <snip> >>> >>>> +struct cap_extra_info { >>>> + struct ceph_string *pool_ns; >>>> + u64 inline_version; >>>> + void *inline_data; >>>> + u32 inline_len; >>>> + // currently issued >>> >>> nit picking: I would rather have C-style comments. >>> >>>> + int issued; >>>> +}; >>>> + >>>> /* >>>> * Handle a cap GRANT message from the MDS. (Note that a GRANT may >>>> * actually be a revocation if it specifies a smaller cap set.) >>>> * >>>> * caller holds s_mutex and i_ceph_lock, we drop both. >>>> */ >>>> -static void handle_cap_grant(struct ceph_mds_client *mdsc, >>>> - struct inode *inode, struct ceph_mds_caps *grant, >>>> - struct ceph_string **pns, u64 inline_version, >>>> - void *inline_data, u32 inline_len, >>>> - struct ceph_buffer *xattr_buf, >>>> +static void handle_cap_grant(struct inode *inode, >>>> struct ceph_mds_session *session, >>>> - struct ceph_cap *cap, int issued) >>>> + struct ceph_cap *cap, >>>> + struct ceph_mds_caps *grant, >>>> + struct ceph_buffer *xattr_buf, >>>> + struct cap_extra_info *extra_info) >>>> __releases(ci->i_ceph_lock) >>>> - __releases(mdsc->snap_rwsem) >>>> + __releases(sesson->s_mdsc->snap_rwsem) >>> ^^^^^^ >>> There's a typo here - it should be 'session'. >>> >> >> thanks. I updated testing branch, please take a look > > Thank you, it looks good to me. > > However, I have a question regarding a different commit in that branch: > > 7ec55c7a52c6 "ceph: update i_files/i_subdirs only when Fs cap is issued" > > This commit has been changed from the original patch posted here, and it > now includes some (unrelated) changes which I don't really understand: > > - issued = __ceph_caps_issued(ci, &implemented); > - issued |= implemented | __ceph_caps_dirty(ci); > - new_issued = ~issued & le32_to_cpu(info->cap.caps); > + __ceph_caps_issued(ci, &issued); > + issued |= __ceph_caps_dirty(ci); > + new_issued = ~issued & info_caps; > > Why isn't 'issued' not being ORed with the implemented caps anymore? > Was that a bug in the previous code? > implemented bits should always includes issued bits. Regards Yan, Zheng > Cheers, > -- > Luis -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html