]> git.baikalelectronics.ru Git - kernel.git/commit
ceph: reencode gid_list when reconnecting
authorIlya Dryomov <idryomov@gmail.com>
Wed, 16 Dec 2020 16:19:58 +0000 (17:19 +0100)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 28 Dec 2020 19:34:32 +0000 (20:34 +0100)
commit1ebf2feaddb247c7d9acadc5aa7e38862216b2d7
treeb8928d1304fa0891e47476c126ecddfa70a93e1b
parent2af7ba1dc0ac24f9c1b6fbed627077d8df258132
ceph: reencode gid_list when reconnecting

On reconnect, cap and dentry releases are dropped and the fields
that follow must be reencoded into the freed space.  Currently these
are timestamp and gid_list, but gid_list isn't reencoded.  This
results in

  failed to decode message of type 24 v4: End of buffer

errors on the MDS.

While at it, make a change to encode gid_list unconditionally,
without regard to what head/which version was used as a result
of checking whether CEPH_FEATURE_FS_BTIME is supported or not.

URL: https://tracker.ceph.com/issues/48618
Fixes: de009b8dac6b ("ceph: implement updated ceph_mds_request_head structure")
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
fs/ceph/mds_client.c