diff options
-rw-r--r-- | fs/ceph/armor.c | 6 | ||||
-rw-r--r-- | fs/ceph/auth.c | 6 | ||||
-rw-r--r-- | fs/ceph/auth_x.c | 6 | ||||
-rw-r--r-- | fs/ceph/buffer.c | 16 | ||||
-rw-r--r-- | fs/ceph/caps.c | 6 | ||||
-rw-r--r-- | fs/ceph/crypto.c | 27 | ||||
-rw-r--r-- | fs/ceph/crypto.h | 4 | ||||
-rw-r--r-- | fs/ceph/decode.h | 6 | ||||
-rw-r--r-- | fs/ceph/dir.c | 2 | ||||
-rw-r--r-- | fs/ceph/file.c | 4 | ||||
-rw-r--r-- | fs/ceph/messenger.c | 8 | ||||
-rw-r--r-- | fs/ceph/osdmap.c | 2 | ||||
-rw-r--r-- | fs/ceph/xattr.c | 2 |
13 files changed, 46 insertions, 49 deletions
diff --git a/fs/ceph/armor.c b/fs/ceph/armor.c index 67b2c030924b..eb2a666b0be7 100644 --- a/fs/ceph/armor.c +++ b/fs/ceph/armor.c | |||
@@ -1,11 +1,15 @@ | |||
1 | 1 | ||
2 | #include <linux/errno.h> | 2 | #include <linux/errno.h> |
3 | 3 | ||
4 | int ceph_armor(char *dst, const char *src, const char *end); | ||
5 | int ceph_unarmor(char *dst, const char *src, const char *end); | ||
6 | |||
4 | /* | 7 | /* |
5 | * base64 encode/decode. | 8 | * base64 encode/decode. |
6 | */ | 9 | */ |
7 | 10 | ||
8 | const char *pem_key = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; | 11 | static const char *pem_key = |
12 | "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; | ||
9 | 13 | ||
10 | static int encode_bits(int c) | 14 | static int encode_bits(int c) |
11 | { | 15 | { |
diff --git a/fs/ceph/auth.c b/fs/ceph/auth.c index 89490beaf537..6d2e30600627 100644 --- a/fs/ceph/auth.c +++ b/fs/ceph/auth.c | |||
@@ -20,7 +20,7 @@ static u32 supported_protocols[] = { | |||
20 | CEPH_AUTH_CEPHX | 20 | CEPH_AUTH_CEPHX |
21 | }; | 21 | }; |
22 | 22 | ||
23 | int ceph_auth_init_protocol(struct ceph_auth_client *ac, int protocol) | 23 | static int ceph_auth_init_protocol(struct ceph_auth_client *ac, int protocol) |
24 | { | 24 | { |
25 | switch (protocol) { | 25 | switch (protocol) { |
26 | case CEPH_AUTH_NONE: | 26 | case CEPH_AUTH_NONE: |
@@ -133,8 +133,8 @@ bad: | |||
133 | return -ERANGE; | 133 | return -ERANGE; |
134 | } | 134 | } |
135 | 135 | ||
136 | int ceph_build_auth_request(struct ceph_auth_client *ac, | 136 | static int ceph_build_auth_request(struct ceph_auth_client *ac, |
137 | void *msg_buf, size_t msg_len) | 137 | void *msg_buf, size_t msg_len) |
138 | { | 138 | { |
139 | struct ceph_mon_request_header *monhdr = msg_buf; | 139 | struct ceph_mon_request_header *monhdr = msg_buf; |
140 | void *p = monhdr + 1; | 140 | void *p = monhdr + 1; |
diff --git a/fs/ceph/auth_x.c b/fs/ceph/auth_x.c index 6d44053ecff1..582e0b2caf8a 100644 --- a/fs/ceph/auth_x.c +++ b/fs/ceph/auth_x.c | |||
@@ -87,8 +87,8 @@ static int ceph_x_decrypt(struct ceph_crypto_key *secret, | |||
87 | /* | 87 | /* |
88 | * get existing (or insert new) ticket handler | 88 | * get existing (or insert new) ticket handler |
89 | */ | 89 | */ |
90 | struct ceph_x_ticket_handler *get_ticket_handler(struct ceph_auth_client *ac, | 90 | static struct ceph_x_ticket_handler * |
91 | int service) | 91 | get_ticket_handler(struct ceph_auth_client *ac, int service) |
92 | { | 92 | { |
93 | struct ceph_x_ticket_handler *th; | 93 | struct ceph_x_ticket_handler *th; |
94 | struct ceph_x_info *xi = ac->private; | 94 | struct ceph_x_info *xi = ac->private; |
@@ -429,7 +429,7 @@ static int ceph_x_build_request(struct ceph_auth_client *ac, | |||
429 | auth->struct_v = 1; | 429 | auth->struct_v = 1; |
430 | auth->key = 0; | 430 | auth->key = 0; |
431 | for (u = (u64 *)tmp_enc; u + 1 <= (u64 *)(tmp_enc + ret); u++) | 431 | for (u = (u64 *)tmp_enc; u + 1 <= (u64 *)(tmp_enc + ret); u++) |
432 | auth->key ^= *u; | 432 | auth->key ^= *(__le64 *)u; |
433 | dout(" server_challenge %llx client_challenge %llx key %llx\n", | 433 | dout(" server_challenge %llx client_challenge %llx key %llx\n", |
434 | xi->server_challenge, le64_to_cpu(auth->client_challenge), | 434 | xi->server_challenge, le64_to_cpu(auth->client_challenge), |
435 | le64_to_cpu(auth->key)); | 435 | le64_to_cpu(auth->key)); |
diff --git a/fs/ceph/buffer.c b/fs/ceph/buffer.c index c67535d70aa6..cd39f17021de 100644 --- a/fs/ceph/buffer.c +++ b/fs/ceph/buffer.c | |||
@@ -47,22 +47,6 @@ void ceph_buffer_release(struct kref *kref) | |||
47 | kfree(b); | 47 | kfree(b); |
48 | } | 48 | } |
49 | 49 | ||
50 | int ceph_buffer_alloc(struct ceph_buffer *b, int len, gfp_t gfp) | ||
51 | { | ||
52 | b->vec.iov_base = kmalloc(len, gfp | __GFP_NOWARN); | ||
53 | if (b->vec.iov_base) { | ||
54 | b->is_vmalloc = false; | ||
55 | } else { | ||
56 | b->vec.iov_base = __vmalloc(len, gfp, PAGE_KERNEL); | ||
57 | b->is_vmalloc = true; | ||
58 | } | ||
59 | if (!b->vec.iov_base) | ||
60 | return -ENOMEM; | ||
61 | b->alloc_len = len; | ||
62 | b->vec.iov_len = len; | ||
63 | return 0; | ||
64 | } | ||
65 | |||
66 | int ceph_decode_buffer(struct ceph_buffer **b, void **p, void *end) | 50 | int ceph_decode_buffer(struct ceph_buffer **b, void **p, void *end) |
67 | { | 51 | { |
68 | size_t len; | 52 | size_t len; |
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index dbf0d6a02a77..d992880d21d4 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c | |||
@@ -1194,6 +1194,8 @@ static int __send_cap(struct ceph_mds_client *mdsc, struct ceph_cap *cap, | |||
1194 | */ | 1194 | */ |
1195 | void __ceph_flush_snaps(struct ceph_inode_info *ci, | 1195 | void __ceph_flush_snaps(struct ceph_inode_info *ci, |
1196 | struct ceph_mds_session **psession) | 1196 | struct ceph_mds_session **psession) |
1197 | __releases(ci->vfs_inode->i_lock) | ||
1198 | __acquires(ci->vfs_inode->i_lock) | ||
1197 | { | 1199 | { |
1198 | struct inode *inode = &ci->vfs_inode; | 1200 | struct inode *inode = &ci->vfs_inode; |
1199 | int mds; | 1201 | int mds; |
@@ -1439,7 +1441,6 @@ static int try_nonblocking_invalidate(struct inode *inode) | |||
1439 | */ | 1441 | */ |
1440 | void ceph_check_caps(struct ceph_inode_info *ci, int flags, | 1442 | void ceph_check_caps(struct ceph_inode_info *ci, int flags, |
1441 | struct ceph_mds_session *session) | 1443 | struct ceph_mds_session *session) |
1442 | __releases(session->s_mutex) | ||
1443 | { | 1444 | { |
1444 | struct ceph_client *client = ceph_inode_to_client(&ci->vfs_inode); | 1445 | struct ceph_client *client = ceph_inode_to_client(&ci->vfs_inode); |
1445 | struct ceph_mds_client *mdsc = &client->mdsc; | 1446 | struct ceph_mds_client *mdsc = &client->mdsc; |
@@ -2256,8 +2257,7 @@ static void handle_cap_grant(struct inode *inode, struct ceph_mds_caps *grant, | |||
2256 | struct ceph_mds_session *session, | 2257 | struct ceph_mds_session *session, |
2257 | struct ceph_cap *cap, | 2258 | struct ceph_cap *cap, |
2258 | struct ceph_buffer *xattr_buf) | 2259 | struct ceph_buffer *xattr_buf) |
2259 | __releases(inode->i_lock) | 2260 | __releases(inode->i_lock) |
2260 | __releases(session->s_mutex) | ||
2261 | { | 2261 | { |
2262 | struct ceph_inode_info *ci = ceph_inode(inode); | 2262 | struct ceph_inode_info *ci = ceph_inode(inode); |
2263 | int mds = session->s_mds; | 2263 | int mds = session->s_mds; |
diff --git a/fs/ceph/crypto.c b/fs/ceph/crypto.c index f704b3b62424..c9318278f419 100644 --- a/fs/ceph/crypto.c +++ b/fs/ceph/crypto.c | |||
@@ -75,10 +75,11 @@ static struct crypto_blkcipher *ceph_crypto_alloc_cipher(void) | |||
75 | return crypto_alloc_blkcipher("cbc(aes)", 0, CRYPTO_ALG_ASYNC); | 75 | return crypto_alloc_blkcipher("cbc(aes)", 0, CRYPTO_ALG_ASYNC); |
76 | } | 76 | } |
77 | 77 | ||
78 | const u8 *aes_iv = "cephsageyudagreg"; | 78 | static const u8 *aes_iv = "cephsageyudagreg"; |
79 | 79 | ||
80 | int ceph_aes_encrypt(const void *key, int key_len, void *dst, size_t *dst_len, | 80 | static int ceph_aes_encrypt(const void *key, int key_len, |
81 | const void *src, size_t src_len) | 81 | void *dst, size_t *dst_len, |
82 | const void *src, size_t src_len) | ||
82 | { | 83 | { |
83 | struct scatterlist sg_in[2], sg_out[1]; | 84 | struct scatterlist sg_in[2], sg_out[1]; |
84 | struct crypto_blkcipher *tfm = ceph_crypto_alloc_cipher(); | 85 | struct crypto_blkcipher *tfm = ceph_crypto_alloc_cipher(); |
@@ -126,9 +127,10 @@ int ceph_aes_encrypt(const void *key, int key_len, void *dst, size_t *dst_len, | |||
126 | return 0; | 127 | return 0; |
127 | } | 128 | } |
128 | 129 | ||
129 | int ceph_aes_encrypt2(const void *key, int key_len, void *dst, size_t *dst_len, | 130 | static int ceph_aes_encrypt2(const void *key, int key_len, void *dst, |
130 | const void *src1, size_t src1_len, | 131 | size_t *dst_len, |
131 | const void *src2, size_t src2_len) | 132 | const void *src1, size_t src1_len, |
133 | const void *src2, size_t src2_len) | ||
132 | { | 134 | { |
133 | struct scatterlist sg_in[3], sg_out[1]; | 135 | struct scatterlist sg_in[3], sg_out[1]; |
134 | struct crypto_blkcipher *tfm = ceph_crypto_alloc_cipher(); | 136 | struct crypto_blkcipher *tfm = ceph_crypto_alloc_cipher(); |
@@ -179,8 +181,9 @@ int ceph_aes_encrypt2(const void *key, int key_len, void *dst, size_t *dst_len, | |||
179 | return 0; | 181 | return 0; |
180 | } | 182 | } |
181 | 183 | ||
182 | int ceph_aes_decrypt(const void *key, int key_len, void *dst, size_t *dst_len, | 184 | static int ceph_aes_decrypt(const void *key, int key_len, |
183 | const void *src, size_t src_len) | 185 | void *dst, size_t *dst_len, |
186 | const void *src, size_t src_len) | ||
184 | { | 187 | { |
185 | struct scatterlist sg_in[1], sg_out[2]; | 188 | struct scatterlist sg_in[1], sg_out[2]; |
186 | struct crypto_blkcipher *tfm = ceph_crypto_alloc_cipher(); | 189 | struct crypto_blkcipher *tfm = ceph_crypto_alloc_cipher(); |
@@ -238,10 +241,10 @@ int ceph_aes_decrypt(const void *key, int key_len, void *dst, size_t *dst_len, | |||
238 | return 0; | 241 | return 0; |
239 | } | 242 | } |
240 | 243 | ||
241 | int ceph_aes_decrypt2(const void *key, int key_len, | 244 | static int ceph_aes_decrypt2(const void *key, int key_len, |
242 | void *dst1, size_t *dst1_len, | 245 | void *dst1, size_t *dst1_len, |
243 | void *dst2, size_t *dst2_len, | 246 | void *dst2, size_t *dst2_len, |
244 | const void *src, size_t src_len) | 247 | const void *src, size_t src_len) |
245 | { | 248 | { |
246 | struct scatterlist sg_in[1], sg_out[3]; | 249 | struct scatterlist sg_in[1], sg_out[3]; |
247 | struct crypto_blkcipher *tfm = ceph_crypto_alloc_cipher(); | 250 | struct crypto_blkcipher *tfm = ceph_crypto_alloc_cipher(); |
diff --git a/fs/ceph/crypto.h b/fs/ceph/crypto.h index 40b502e6bd89..bdf38607323c 100644 --- a/fs/ceph/crypto.h +++ b/fs/ceph/crypto.h | |||
@@ -42,7 +42,7 @@ extern int ceph_encrypt2(struct ceph_crypto_key *secret, | |||
42 | const void *src2, size_t src2_len); | 42 | const void *src2, size_t src2_len); |
43 | 43 | ||
44 | /* armor.c */ | 44 | /* armor.c */ |
45 | extern int ceph_armor(char *dst, const void *src, const void *end); | 45 | extern int ceph_armor(char *dst, const char *src, const char *end); |
46 | extern int ceph_unarmor(void *dst, const char *src, const char *end); | 46 | extern int ceph_unarmor(char *dst, const char *src, const char *end); |
47 | 47 | ||
48 | #endif | 48 | #endif |
diff --git a/fs/ceph/decode.h b/fs/ceph/decode.h index 65b3e022eaf5..3d25415afe63 100644 --- a/fs/ceph/decode.h +++ b/fs/ceph/decode.h | |||
@@ -99,11 +99,13 @@ static inline void ceph_encode_timespec(struct ceph_timespec *tv, | |||
99 | */ | 99 | */ |
100 | static inline void ceph_encode_addr(struct ceph_entity_addr *a) | 100 | static inline void ceph_encode_addr(struct ceph_entity_addr *a) |
101 | { | 101 | { |
102 | a->in_addr.ss_family = htons(a->in_addr.ss_family); | 102 | __be16 ss_family = htons(a->in_addr.ss_family); |
103 | a->in_addr.ss_family = *(__u16 *)&ss_family; | ||
103 | } | 104 | } |
104 | static inline void ceph_decode_addr(struct ceph_entity_addr *a) | 105 | static inline void ceph_decode_addr(struct ceph_entity_addr *a) |
105 | { | 106 | { |
106 | a->in_addr.ss_family = ntohs(a->in_addr.ss_family); | 107 | __be16 ss_family = *(__be16 *)&a->in_addr.ss_family; |
108 | a->in_addr.ss_family = ntohs(ss_family); | ||
107 | WARN_ON(a->in_addr.ss_family == 512); | 109 | WARN_ON(a->in_addr.ss_family == 512); |
108 | } | 110 | } |
109 | 111 | ||
diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c index f94ed3c7f6a5..0ec6e67533ef 100644 --- a/fs/ceph/dir.c +++ b/fs/ceph/dir.c | |||
@@ -94,6 +94,8 @@ static unsigned fpos_off(loff_t p) | |||
94 | */ | 94 | */ |
95 | static int __dcache_readdir(struct file *filp, | 95 | static int __dcache_readdir(struct file *filp, |
96 | void *dirent, filldir_t filldir) | 96 | void *dirent, filldir_t filldir) |
97 | __releases(inode->i_lock) | ||
98 | __acquires(inode->i_lock) | ||
97 | { | 99 | { |
98 | struct inode *inode = filp->f_dentry->d_inode; | 100 | struct inode *inode = filp->f_dentry->d_inode; |
99 | struct ceph_file_info *fi = filp->private_data; | 101 | struct ceph_file_info *fi = filp->private_data; |
diff --git a/fs/ceph/file.c b/fs/ceph/file.c index 2329244f427b..5fe50ffa2deb 100644 --- a/fs/ceph/file.c +++ b/fs/ceph/file.c | |||
@@ -317,7 +317,7 @@ void ceph_release_page_vector(struct page **pages, int num_pages) | |||
317 | /* | 317 | /* |
318 | * allocate a vector new pages | 318 | * allocate a vector new pages |
319 | */ | 319 | */ |
320 | struct page **ceph_alloc_page_vector(int num_pages, gfp_t flags) | 320 | static struct page **ceph_alloc_page_vector(int num_pages, gfp_t flags) |
321 | { | 321 | { |
322 | struct page **pages; | 322 | struct page **pages; |
323 | int i; | 323 | int i; |
@@ -745,7 +745,7 @@ static ssize_t ceph_aio_read(struct kiocb *iocb, const struct iovec *iov, | |||
745 | size_t len = iov->iov_len; | 745 | size_t len = iov->iov_len; |
746 | struct inode *inode = filp->f_dentry->d_inode; | 746 | struct inode *inode = filp->f_dentry->d_inode; |
747 | struct ceph_inode_info *ci = ceph_inode(inode); | 747 | struct ceph_inode_info *ci = ceph_inode(inode); |
748 | void *base = iov->iov_base; | 748 | void __user *base = iov->iov_base; |
749 | ssize_t ret; | 749 | ssize_t ret; |
750 | int want, got = 0; | 750 | int want, got = 0; |
751 | int checkeof = 0, read = 0; | 751 | int checkeof = 0, read = 0; |
diff --git a/fs/ceph/messenger.c b/fs/ceph/messenger.c index 15167b2daa55..71263a2a78d7 100644 --- a/fs/ceph/messenger.c +++ b/fs/ceph/messenger.c | |||
@@ -108,7 +108,7 @@ void ceph_msgr_exit(void) | |||
108 | destroy_workqueue(ceph_msgr_wq); | 108 | destroy_workqueue(ceph_msgr_wq); |
109 | } | 109 | } |
110 | 110 | ||
111 | void ceph_msgr_flush() | 111 | void ceph_msgr_flush(void) |
112 | { | 112 | { |
113 | flush_workqueue(ceph_msgr_wq); | 113 | flush_workqueue(ceph_msgr_wq); |
114 | } | 114 | } |
@@ -1081,11 +1081,11 @@ static int process_banner(struct ceph_connection *con) | |||
1081 | sizeof(con->peer_addr)) != 0 && | 1081 | sizeof(con->peer_addr)) != 0 && |
1082 | !(addr_is_blank(&con->actual_peer_addr.in_addr) && | 1082 | !(addr_is_blank(&con->actual_peer_addr.in_addr) && |
1083 | con->actual_peer_addr.nonce == con->peer_addr.nonce)) { | 1083 | con->actual_peer_addr.nonce == con->peer_addr.nonce)) { |
1084 | pr_warning("wrong peer, want %s/%lld, got %s/%lld\n", | 1084 | pr_warning("wrong peer, want %s/%d, got %s/%d\n", |
1085 | pr_addr(&con->peer_addr.in_addr), | 1085 | pr_addr(&con->peer_addr.in_addr), |
1086 | le64_to_cpu(con->peer_addr.nonce), | 1086 | (int)le32_to_cpu(con->peer_addr.nonce), |
1087 | pr_addr(&con->actual_peer_addr.in_addr), | 1087 | pr_addr(&con->actual_peer_addr.in_addr), |
1088 | le64_to_cpu(con->actual_peer_addr.nonce)); | 1088 | (int)le32_to_cpu(con->actual_peer_addr.nonce)); |
1089 | con->error_msg = "wrong peer at address"; | 1089 | con->error_msg = "wrong peer at address"; |
1090 | return -1; | 1090 | return -1; |
1091 | } | 1091 | } |
diff --git a/fs/ceph/osdmap.c b/fs/ceph/osdmap.c index 416d46adbf87..46b391d8e86c 100644 --- a/fs/ceph/osdmap.c +++ b/fs/ceph/osdmap.c | |||
@@ -424,7 +424,7 @@ static void __remove_pg_pool(struct rb_root *root, struct ceph_pg_pool_info *pi) | |||
424 | kfree(pi); | 424 | kfree(pi); |
425 | } | 425 | } |
426 | 426 | ||
427 | void __decode_pool(void **p, struct ceph_pg_pool_info *pi) | 427 | static void __decode_pool(void **p, struct ceph_pg_pool_info *pi) |
428 | { | 428 | { |
429 | ceph_decode_copy(p, &pi->v, sizeof(pi->v)); | 429 | ceph_decode_copy(p, &pi->v, sizeof(pi->v)); |
430 | calc_pg_masks(pi); | 430 | calc_pg_masks(pi); |
diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c index 68aeebc69681..097a2654c00f 100644 --- a/fs/ceph/xattr.c +++ b/fs/ceph/xattr.c | |||
@@ -337,6 +337,8 @@ void __ceph_destroy_xattrs(struct ceph_inode_info *ci) | |||
337 | } | 337 | } |
338 | 338 | ||
339 | static int __build_xattrs(struct inode *inode) | 339 | static int __build_xattrs(struct inode *inode) |
340 | __releases(inode->i_lock) | ||
341 | __acquires(inode->i_lock) | ||
340 | { | 342 | { |
341 | u32 namelen; | 343 | u32 namelen; |
342 | u32 numattr = 0; | 344 | u32 numattr = 0; |