Message ID | 1478259273-3471-9-git-send-email-jlayton@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Nov 4, 2016 at 7:34 PM, Jeff Layton <jlayton@redhat.com> wrote: > So we can request an MDS log flush on a cap message when we know that > we'll be waiting on the result. > > Signed-off-by: Jeff Layton <jlayton@redhat.com> > --- > fs/ceph/caps.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c > index 452f5024589f..e92c6ce53af6 100644 > --- a/fs/ceph/caps.c > +++ b/fs/ceph/caps.c > @@ -999,7 +999,7 @@ struct cap_msg_args { > kuid_t uid; > kgid_t gid; > umode_t mode; > - bool inline_data; > + bool inline_data, sync; > }; > > /* > @@ -1090,7 +1090,7 @@ static int send_cap_msg(struct cap_msg_args *arg) > ceph_encode_timespec(p, &arg->btime); > p += sizeof(struct ceph_timespec); > ceph_encode_64(&p, arg->change_attr); > - ceph_encode_8(&p, 0); > + ceph_encode_8(&p, arg->sync); this is the 'flag' field? In MClientCaps, it's 'unsigned int' > > ceph_con_send(&arg->session->s_con, msg); > return 0; > @@ -1223,6 +1223,7 @@ static int __send_cap(struct ceph_mds_client *mdsc, struct ceph_cap *cap, > arg.mode = inode->i_mode; > > arg.inline_data = ci->i_inline_version != CEPH_INLINE_NONE; > + arg.sync = false; > > spin_unlock(&ci->i_ceph_lock); > > @@ -1278,6 +1279,7 @@ static inline int __send_flush_snap(struct inode *inode, > arg.mode = capsnap->mode; > > arg.inline_data = capsnap->inline_data; > + arg.sync = false; > > return send_cap_msg(&arg); > } > -- > 2.7.4 > > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, 2016-11-07 at 16:32 +0800, Yan, Zheng wrote: > On Fri, Nov 4, 2016 at 7:34 PM, Jeff Layton <jlayton@redhat.com> wrote: > > > > So we can request an MDS log flush on a cap message when we know that > > we'll be waiting on the result. > > > > Signed-off-by: Jeff Layton <jlayton@redhat.com> > > --- > > fs/ceph/caps.c | 6 ++++-- > > 1 file changed, 4 insertions(+), 2 deletions(-) > > > > diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c > > index 452f5024589f..e92c6ce53af6 100644 > > --- a/fs/ceph/caps.c > > +++ b/fs/ceph/caps.c > > @@ -999,7 +999,7 @@ struct cap_msg_args { > > kuid_t uid; > > kgid_t gid; > > umode_t mode; > > - bool inline_data; > > + bool inline_data, sync; > > }; > > > > /* > > @@ -1090,7 +1090,7 @@ static int send_cap_msg(struct cap_msg_args *arg) > > ceph_encode_timespec(p, &arg->btime); > > p += sizeof(struct ceph_timespec); > > ceph_encode_64(&p, arg->change_attr); > > - ceph_encode_8(&p, 0); > > + ceph_encode_8(&p, arg->sync); > > this is the 'flag' field? In MClientCaps, it's 'unsigned int' > Thanks for the review. Yes, the first version of the userland patch series had this as a bool, but I changed to a flags field based on some review of that set. I'll be posting a newer kernel set in the next day or two. > > > > > > ceph_con_send(&arg->session->s_con, msg); > > return 0; > > @@ -1223,6 +1223,7 @@ static int __send_cap(struct ceph_mds_client *mdsc, struct ceph_cap *cap, > > arg.mode = inode->i_mode; > > > > arg.inline_data = ci->i_inline_version != CEPH_INLINE_NONE; > > + arg.sync = false; > > > > spin_unlock(&ci->i_ceph_lock); > > > > @@ -1278,6 +1279,7 @@ static inline int __send_flush_snap(struct inode *inode, > > arg.mode = capsnap->mode; > > > > arg.inline_data = capsnap->inline_data; > > + arg.sync = false; > > > > return send_cap_msg(&arg); > > } > > -- > > 2.7.4 > > > > -- > > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index 452f5024589f..e92c6ce53af6 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c @@ -999,7 +999,7 @@ struct cap_msg_args { kuid_t uid; kgid_t gid; umode_t mode; - bool inline_data; + bool inline_data, sync; }; /* @@ -1090,7 +1090,7 @@ static int send_cap_msg(struct cap_msg_args *arg) ceph_encode_timespec(p, &arg->btime); p += sizeof(struct ceph_timespec); ceph_encode_64(&p, arg->change_attr); - ceph_encode_8(&p, 0); + ceph_encode_8(&p, arg->sync); ceph_con_send(&arg->session->s_con, msg); return 0; @@ -1223,6 +1223,7 @@ static int __send_cap(struct ceph_mds_client *mdsc, struct ceph_cap *cap, arg.mode = inode->i_mode; arg.inline_data = ci->i_inline_version != CEPH_INLINE_NONE; + arg.sync = false; spin_unlock(&ci->i_ceph_lock); @@ -1278,6 +1279,7 @@ static inline int __send_flush_snap(struct inode *inode, arg.mode = capsnap->mode; arg.inline_data = capsnap->inline_data; + arg.sync = false; return send_cap_msg(&arg); }
So we can request an MDS log flush on a cap message when we know that we'll be waiting on the result. Signed-off-by: Jeff Layton <jlayton@redhat.com> --- fs/ceph/caps.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)