flexfilelayout.c (3064b6861d00b7124558cdf79f9387f948361be3) flexfilelayout.c (93b717fd81bf6b9a73c3702e9b079b4de8148b34)
1/*
2 * Module for pnfs flexfile layout driver.
3 *
4 * Copyright (c) 2014, Primary Data, Inc. All rights reserved.
5 *
6 * Tao Peng <bergwolf@primarydata.com>
7 */
8

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

50 list_for_each_entry_safe(err, n, &FF_LAYOUT_FROM_HDR(lo)->error_list,
51 list) {
52 list_del(&err->list);
53 kfree(err);
54 }
55 kfree(FF_LAYOUT_FROM_HDR(lo));
56}
57
1/*
2 * Module for pnfs flexfile layout driver.
3 *
4 * Copyright (c) 2014, Primary Data, Inc. All rights reserved.
5 *
6 * Tao Peng <bergwolf@primarydata.com>
7 */
8

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

50 list_for_each_entry_safe(err, n, &FF_LAYOUT_FROM_HDR(lo)->error_list,
51 list) {
52 list_del(&err->list);
53 kfree(err);
54 }
55 kfree(FF_LAYOUT_FROM_HDR(lo));
56}
57
58static int decode_stateid(struct xdr_stream *xdr, nfs4_stateid *stateid)
58static int decode_pnfs_stateid(struct xdr_stream *xdr, nfs4_stateid *stateid)
59{
60 __be32 *p;
61
62 p = xdr_inline_decode(xdr, NFS4_STATEID_SIZE);
63 if (unlikely(p == NULL))
64 return -ENOBUFS;
59{
60 __be32 *p;
61
62 p = xdr_inline_decode(xdr, NFS4_STATEID_SIZE);
63 if (unlikely(p == NULL))
64 return -ENOBUFS;
65 memcpy(stateid, p, NFS4_STATEID_SIZE);
65 stateid->type = NFS4_PNFS_DS_STATEID_TYPE;
66 memcpy(stateid->data, p, NFS4_STATEID_SIZE);
66 dprintk("%s: stateid id= [%x%x%x%x]\n", __func__,
67 p[0], p[1], p[2], p[3]);
68 return 0;
69}
70
71static int decode_deviceid(struct xdr_stream *xdr, struct nfs4_deviceid *devid)
72{
73 __be32 *p;

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

460 /* efficiency */
461 rc = -EIO;
462 p = xdr_inline_decode(&stream, 4);
463 if (!p)
464 goto out_err_free;
465 fls->mirror_array[i]->efficiency = be32_to_cpup(p);
466
467 /* stateid */
67 dprintk("%s: stateid id= [%x%x%x%x]\n", __func__,
68 p[0], p[1], p[2], p[3]);
69 return 0;
70}
71
72static int decode_deviceid(struct xdr_stream *xdr, struct nfs4_deviceid *devid)
73{
74 __be32 *p;

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

461 /* efficiency */
462 rc = -EIO;
463 p = xdr_inline_decode(&stream, 4);
464 if (!p)
465 goto out_err_free;
466 fls->mirror_array[i]->efficiency = be32_to_cpup(p);
467
468 /* stateid */
468 rc = decode_stateid(&stream, &fls->mirror_array[i]->stateid);
469 rc = decode_pnfs_stateid(&stream, &fls->mirror_array[i]->stateid);
469 if (rc)
470 goto out_err_free;
471
472 /* fh */
473 p = xdr_inline_decode(&stream, 4);
474 if (!p)
475 goto out_err_free;
476 fh_count = be32_to_cpup(p);

--- 1812 unchanged lines hidden ---
470 if (rc)
471 goto out_err_free;
472
473 /* fh */
474 p = xdr_inline_decode(&stream, 4);
475 if (!p)
476 goto out_err_free;
477 fh_count = be32_to_cpup(p);

--- 1812 unchanged lines hidden ---