Lines Matching refs:fl

539 			  struct nfs4_filelayout_segment *fl,  in filelayout_check_deviceid()  argument
547 if (fl->dsaddr != NULL) in filelayout_check_deviceid()
551 d = nfs4_find_get_deviceid(NFS_SERVER(lo->plh_inode), &fl->deviceid, in filelayout_check_deviceid()
561 if (fl->first_stripe_index >= dsaddr->stripe_count) { in filelayout_check_deviceid()
563 __func__, fl->first_stripe_index); in filelayout_check_deviceid()
567 if ((fl->stripe_type == STRIPE_SPARSE && in filelayout_check_deviceid()
568 fl->num_fh > 1 && fl->num_fh != dsaddr->ds_num) || in filelayout_check_deviceid()
569 (fl->stripe_type == STRIPE_DENSE && in filelayout_check_deviceid()
570 fl->num_fh != dsaddr->stripe_count)) { in filelayout_check_deviceid()
572 __func__, fl->num_fh); in filelayout_check_deviceid()
581 if (cmpxchg(&fl->dsaddr, NULL, dsaddr) != NULL) in filelayout_check_deviceid()
600 struct nfs4_filelayout_segment *fl, in filelayout_check_layout() argument
608 if (fl->pattern_offset > lgr->range.offset) { in filelayout_check_layout()
610 __func__, fl->pattern_offset); in filelayout_check_layout()
614 if (!fl->stripe_unit) { in filelayout_check_layout()
616 __func__, fl->stripe_unit); in filelayout_check_layout()
626 static void _filelayout_free_lseg(struct nfs4_filelayout_segment *fl) in _filelayout_free_lseg() argument
630 if (fl->fh_array) { in _filelayout_free_lseg()
631 for (i = 0; i < fl->num_fh; i++) { in _filelayout_free_lseg()
632 if (!fl->fh_array[i]) in _filelayout_free_lseg()
634 kfree(fl->fh_array[i]); in _filelayout_free_lseg()
636 kfree(fl->fh_array); in _filelayout_free_lseg()
638 kfree(fl); in _filelayout_free_lseg()
643 struct nfs4_filelayout_segment *fl, in filelayout_decode_layout() argument
669 memcpy(&fl->deviceid, p, sizeof(fl->deviceid)); in filelayout_decode_layout()
671 nfs4_print_deviceid(&fl->deviceid); in filelayout_decode_layout()
675 fl->commit_through_mds = 1; in filelayout_decode_layout()
677 fl->stripe_type = STRIPE_DENSE; in filelayout_decode_layout()
679 fl->stripe_type = STRIPE_SPARSE; in filelayout_decode_layout()
680 fl->stripe_unit = nfl_util & ~NFL4_UFLG_MASK; in filelayout_decode_layout()
682 fl->first_stripe_index = be32_to_cpup(p++); in filelayout_decode_layout()
683 p = xdr_decode_hyper(p, &fl->pattern_offset); in filelayout_decode_layout()
684 fl->num_fh = be32_to_cpup(p++); in filelayout_decode_layout()
687 __func__, nfl_util, fl->num_fh, fl->first_stripe_index, in filelayout_decode_layout()
688 fl->pattern_offset); in filelayout_decode_layout()
692 if (fl->num_fh > in filelayout_decode_layout()
696 if (fl->num_fh > 0) { in filelayout_decode_layout()
697 fl->fh_array = kcalloc(fl->num_fh, sizeof(fl->fh_array[0]), in filelayout_decode_layout()
699 if (!fl->fh_array) in filelayout_decode_layout()
703 for (i = 0; i < fl->num_fh; i++) { in filelayout_decode_layout()
705 fl->fh_array[i] = kmalloc(sizeof(struct nfs_fh), gfp_flags); in filelayout_decode_layout()
706 if (!fl->fh_array[i]) in filelayout_decode_layout()
712 fl->fh_array[i]->size = be32_to_cpup(p++); in filelayout_decode_layout()
713 if (fl->fh_array[i]->size > NFS_MAXFHSIZE) { in filelayout_decode_layout()
715 i, fl->fh_array[i]->size); in filelayout_decode_layout()
719 p = xdr_inline_decode(&stream, fl->fh_array[i]->size); in filelayout_decode_layout()
722 memcpy(fl->fh_array[i]->data, p, fl->fh_array[i]->size); in filelayout_decode_layout()
724 fl->fh_array[i]->size); in filelayout_decode_layout()
738 struct nfs4_filelayout_segment *fl = FILELAYOUT_LSEG(lseg); in filelayout_free_lseg() local
741 if (fl->dsaddr != NULL) in filelayout_free_lseg()
742 nfs4_fl_put_deviceid(fl->dsaddr); in filelayout_free_lseg()
754 _filelayout_free_lseg(fl); in filelayout_free_lseg()
762 struct nfs4_filelayout_segment *fl; in filelayout_alloc_lseg() local
766 fl = kzalloc(sizeof(*fl), gfp_flags); in filelayout_alloc_lseg()
767 if (!fl) in filelayout_alloc_lseg()
770 rc = filelayout_decode_layout(layoutid, fl, lgr, gfp_flags); in filelayout_alloc_lseg()
771 if (rc != 0 || filelayout_check_layout(layoutid, fl, lgr, gfp_flags)) { in filelayout_alloc_lseg()
772 _filelayout_free_lseg(fl); in filelayout_alloc_lseg()
775 return &fl->generic_hdr; in filelayout_alloc_lseg()
839 struct nfs4_filelayout_segment *fl; in fl_pnfs_update_layout() local
853 fl = FILELAYOUT_LSEG(lseg); in fl_pnfs_update_layout()
855 status = filelayout_check_deviceid(lo, fl, gfp_flags); in fl_pnfs_update_layout()
929 static u32 select_bucket_index(struct nfs4_filelayout_segment *fl, u32 j) in select_bucket_index() argument
931 if (fl->stripe_type == STRIPE_SPARSE) in select_bucket_index()
932 return nfs4_fl_calc_ds_index(&fl->generic_hdr, j); in select_bucket_index()
944 struct nfs4_filelayout_segment *fl = FILELAYOUT_LSEG(lseg); in filelayout_mark_request_commit() local
947 if (fl->commit_through_mds) { in filelayout_mark_request_commit()
957 i = select_bucket_index(fl, j); in filelayout_mark_request_commit()
1081 struct nfs4_filelayout_segment *fl = FILELAYOUT_LSEG(lseg); in filelayout_setup_ds_info() local
1084 unsigned int size = (fl->stripe_type == STRIPE_SPARSE) ? in filelayout_setup_ds_info()
1085 fl->dsaddr->ds_num : fl->dsaddr->stripe_count; in filelayout_setup_ds_info()