mds_client.c (428138c9892fac19a682973bbb6d8c2a904b6639) mds_client.c (245ce991cca55eb16cfc43d1655574121b8ed85f)
1// SPDX-License-Identifier: GPL-2.0
2#include <linux/ceph/ceph_debug.h>
3
4#include <linux/fs.h>
5#include <linux/wait.h>
6#include <linux/slab.h>
7#include <linux/gfp.h>
8#include <linux/sched.h>

--- 136 unchanged lines hidden (view full) ---

145 goto out_bad;
146 /* pool namespace */
147 ceph_decode_32_safe(p, end, info->pool_ns_len, bad);
148 if (info->pool_ns_len > 0) {
149 ceph_decode_need(p, end, info->pool_ns_len, bad);
150 info->pool_ns_data = *p;
151 *p += info->pool_ns_len;
152 }
1// SPDX-License-Identifier: GPL-2.0
2#include <linux/ceph/ceph_debug.h>
3
4#include <linux/fs.h>
5#include <linux/wait.h>
6#include <linux/slab.h>
7#include <linux/gfp.h>
8#include <linux/sched.h>

--- 136 unchanged lines hidden (view full) ---

145 goto out_bad;
146 /* pool namespace */
147 ceph_decode_32_safe(p, end, info->pool_ns_len, bad);
148 if (info->pool_ns_len > 0) {
149 ceph_decode_need(p, end, info->pool_ns_len, bad);
150 info->pool_ns_data = *p;
151 *p += info->pool_ns_len;
152 }
153 /* btime, change_attr */
154 {
155 struct ceph_timespec btime;
156 u64 change_attr;
157 ceph_decode_need(p, end, sizeof(btime), bad);
158 ceph_decode_copy(p, &btime, sizeof(btime));
159 ceph_decode_64_safe(p, end, change_attr, bad);
160 }
161
153
154 /* btime */
155 ceph_decode_need(p, end, sizeof(info->btime), bad);
156 ceph_decode_copy(p, &info->btime, sizeof(info->btime));
157
158 /* change attribute */
159 ceph_decode_skip_64(p, end, bad);
160
162 /* dir pin */
163 if (struct_v >= 2) {
164 ceph_decode_32_safe(p, end, info->dir_pin, bad);
165 } else {
166 info->dir_pin = -ENODATA;
167 }
168
169 /* snapshot birth time, remains zero for v<=2 */

--- 31 unchanged lines hidden (view full) ---

201 ceph_decode_32_safe(p, end, info->pool_ns_len, bad);
202 if (info->pool_ns_len > 0) {
203 ceph_decode_need(p, end, info->pool_ns_len, bad);
204 info->pool_ns_data = *p;
205 *p += info->pool_ns_len;
206 }
207 }
208
161 /* dir pin */
162 if (struct_v >= 2) {
163 ceph_decode_32_safe(p, end, info->dir_pin, bad);
164 } else {
165 info->dir_pin = -ENODATA;
166 }
167
168 /* snapshot birth time, remains zero for v<=2 */

--- 31 unchanged lines hidden (view full) ---

200 ceph_decode_32_safe(p, end, info->pool_ns_len, bad);
201 if (info->pool_ns_len > 0) {
202 ceph_decode_need(p, end, info->pool_ns_len, bad);
203 info->pool_ns_data = *p;
204 *p += info->pool_ns_len;
205 }
206 }
207
208 if (features & CEPH_FEATURE_FS_BTIME) {
209 ceph_decode_need(p, end, sizeof(info->btime), bad);
210 ceph_decode_copy(p, &info->btime, sizeof(info->btime));
211 ceph_decode_skip_64(p, end, bad);
212 }
213
209 info->dir_pin = -ENODATA;
210 /* info->snap_btime remains zero */
211 }
212 return 0;
213bad:
214 err = -EIO;
215out_bad:
216 return err;

--- 4522 unchanged lines hidden ---
214 info->dir_pin = -ENODATA;
215 /* info->snap_btime remains zero */
216 }
217 return 0;
218bad:
219 err = -EIO;
220out_bad:
221 return err;

--- 4522 unchanged lines hidden ---