diff options
Diffstat (limited to 'fs/nfs/objlayout/objlayout.c')
-rw-r--r-- | fs/nfs/objlayout/objlayout.c | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/fs/nfs/objlayout/objlayout.c b/fs/nfs/objlayout/objlayout.c index 697a16d11fac..c89357c7a914 100644 --- a/fs/nfs/objlayout/objlayout.c +++ b/fs/nfs/objlayout/objlayout.c | |||
@@ -574,76 +574,6 @@ loop_done: | |||
574 | dprintk("%s: Return\n", __func__); | 574 | dprintk("%s: Return\n", __func__); |
575 | } | 575 | } |
576 | 576 | ||
577 | |||
578 | /* | ||
579 | * Get Device Info API for io engines | ||
580 | */ | ||
581 | struct objlayout_deviceinfo { | ||
582 | struct page *page; | ||
583 | struct pnfs_osd_deviceaddr da; /* This must be last */ | ||
584 | }; | ||
585 | |||
586 | /* Initialize and call nfs_getdeviceinfo, then decode and return a | ||
587 | * "struct pnfs_osd_deviceaddr *" Eventually objlayout_put_deviceinfo() | ||
588 | * should be called. | ||
589 | */ | ||
590 | int objlayout_get_deviceinfo(struct pnfs_layout_hdr *pnfslay, | ||
591 | struct nfs4_deviceid *d_id, struct pnfs_osd_deviceaddr **deviceaddr, | ||
592 | gfp_t gfp_flags) | ||
593 | { | ||
594 | struct objlayout_deviceinfo *odi; | ||
595 | struct pnfs_device pd; | ||
596 | struct page *page, **pages; | ||
597 | u32 *p; | ||
598 | int err; | ||
599 | |||
600 | page = alloc_page(gfp_flags); | ||
601 | if (!page) | ||
602 | return -ENOMEM; | ||
603 | |||
604 | pages = &page; | ||
605 | pd.pages = pages; | ||
606 | |||
607 | memcpy(&pd.dev_id, d_id, sizeof(*d_id)); | ||
608 | pd.layout_type = LAYOUT_OSD2_OBJECTS; | ||
609 | pd.pages = &page; | ||
610 | pd.pgbase = 0; | ||
611 | pd.pglen = PAGE_SIZE; | ||
612 | pd.mincount = 0; | ||
613 | pd.maxcount = PAGE_SIZE; | ||
614 | |||
615 | err = nfs4_proc_getdeviceinfo(NFS_SERVER(pnfslay->plh_inode), &pd, | ||
616 | pnfslay->plh_lc_cred); | ||
617 | dprintk("%s nfs_getdeviceinfo returned %d\n", __func__, err); | ||
618 | if (err) | ||
619 | goto err_out; | ||
620 | |||
621 | p = page_address(page); | ||
622 | odi = kzalloc(sizeof(*odi), gfp_flags); | ||
623 | if (!odi) { | ||
624 | err = -ENOMEM; | ||
625 | goto err_out; | ||
626 | } | ||
627 | pnfs_osd_xdr_decode_deviceaddr(&odi->da, p); | ||
628 | odi->page = page; | ||
629 | *deviceaddr = &odi->da; | ||
630 | return 0; | ||
631 | |||
632 | err_out: | ||
633 | __free_page(page); | ||
634 | return err; | ||
635 | } | ||
636 | |||
637 | void objlayout_put_deviceinfo(struct pnfs_osd_deviceaddr *deviceaddr) | ||
638 | { | ||
639 | struct objlayout_deviceinfo *odi = container_of(deviceaddr, | ||
640 | struct objlayout_deviceinfo, | ||
641 | da); | ||
642 | |||
643 | __free_page(odi->page); | ||
644 | kfree(odi); | ||
645 | } | ||
646 | |||
647 | enum { | 577 | enum { |
648 | OBJLAYOUT_MAX_URI_LEN = 256, OBJLAYOUT_MAX_OSDNAME_LEN = 64, | 578 | OBJLAYOUT_MAX_URI_LEN = 256, OBJLAYOUT_MAX_OSDNAME_LEN = 64, |
649 | OBJLAYOUT_MAX_SYSID_HEX_LEN = OSD_SYSTEMID_LEN * 2 + 1, | 579 | OBJLAYOUT_MAX_SYSID_HEX_LEN = OSD_SYSTEMID_LEN * 2 + 1, |