| From: Jeff Layton <jlayton@redhat.com> |
| Date: Thu, 12 Jan 2017 14:42:38 -0500 |
| Subject: ceph: fix endianness of getattr mask in ceph_d_revalidate |
| |
| commit 1097680d759918ce4a8705381c0ab2ed7bd60cf1 upstream. |
| |
| sparse says: |
| |
| fs/ceph/dir.c:1248:50: warning: incorrect type in assignment (different base types) |
| fs/ceph/dir.c:1248:50: expected restricted __le32 [usertype] mask |
| fs/ceph/dir.c:1248:50: got int [signed] [assigned] mask |
| |
| Fixes: 200fd27c8fa2 ("ceph: use lookup request to revalidate dentry") |
| Signed-off-by: Jeff Layton <jlayton@redhat.com> |
| Reviewed-by: Sage Weil <sage@redhat.com> |
| Signed-off-by: Ilya Dryomov <idryomov@gmail.com> |
| Cc: Bryan Henderson <bryanh@giraffe-data.com> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| fs/ceph/dir.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| --- a/fs/ceph/dir.c |
| +++ b/fs/ceph/dir.c |
| @@ -1068,7 +1068,8 @@ static int ceph_d_revalidate(struct dent |
| struct ceph_mds_client *mdsc = |
| ceph_sb_to_client(dir->i_sb)->mdsc; |
| struct ceph_mds_request *req; |
| - int op, mask, err; |
| + int op, err; |
| + u32 mask; |
| |
| op = ceph_snap(dir) == CEPH_SNAPDIR ? |
| CEPH_MDS_OP_LOOKUPSNAP : CEPH_MDS_OP_GETATTR; |
| @@ -1080,7 +1081,7 @@ static int ceph_d_revalidate(struct dent |
| mask = CEPH_STAT_CAP_INODE | CEPH_CAP_AUTH_SHARED; |
| if (ceph_security_xattr_wanted(dir)) |
| mask |= CEPH_CAP_XATTR_SHARED; |
| - req->r_args.getattr.mask = mask; |
| + req->r_args.getattr.mask = cpu_to_le32(mask); |
| |
| err = ceph_mdsc_do_request(mdsc, NULL, req); |
| switch (err) { |