Lines Matching refs:ea

76 			  struct gfs2_ea_header *ea,
82 struct gfs2_ea_header *ea, *prev = NULL; in ea_foreach_i() local
88 for (ea = GFS2_EA_BH2FIRST(bh);; prev = ea, ea = GFS2_EA2NEXT(ea)) { in ea_foreach_i()
89 if (!GFS2_EA_REC_LEN(ea)) in ea_foreach_i()
91 if (!(bh->b_data <= (char *)ea && (char *)GFS2_EA2NEXT(ea) <= in ea_foreach_i()
94 if (!GFS2_EATYPE_VALID(ea->ea_type)) in ea_foreach_i()
97 error = ea_call(ip, bh, ea, prev, data); in ea_foreach_i()
101 if (GFS2_EA_IS_LAST(ea)) { in ea_foreach_i()
102 if ((char *)GFS2_EA2NEXT(ea) != in ea_foreach_i()
167 struct gfs2_ea_header *ea, struct gfs2_ea_header *prev, in ea_find_i() argument
172 if (ea->ea_type == GFS2_EATYPE_UNUSED) in ea_find_i()
175 if (ea->ea_type == ef->type) { in ea_find_i()
176 if (ea->ea_name_len == ef->namel && in ea_find_i()
177 !memcmp(GFS2_EA2NAME(ea), ef->name, ea->ea_name_len)) { in ea_find_i()
181 el->el_ea = ea; in ea_find_i()
226 struct gfs2_ea_header *ea, in ea_dealloc_unstuffed() argument
246 if (GFS2_EA_IS_STUFFED(ea)) in ea_dealloc_unstuffed()
249 dataptrs = GFS2_EA2DATAPTRS(ea); in ea_dealloc_unstuffed()
250 for (x = 0; x < ea->ea_num_ptrs; x++, dataptrs++) { in ea_dealloc_unstuffed()
276 dataptrs = GFS2_EA2DATAPTRS(ea); in ea_dealloc_unstuffed()
277 for (x = 0; x < ea->ea_num_ptrs; x++, dataptrs++) { in ea_dealloc_unstuffed()
300 len = GFS2_EA_REC_LEN(prev) + GFS2_EA_REC_LEN(ea); in ea_dealloc_unstuffed()
303 if (GFS2_EA_IS_LAST(ea)) in ea_dealloc_unstuffed()
306 ea->ea_type = GFS2_EATYPE_UNUSED; in ea_dealloc_unstuffed()
307 ea->ea_num_ptrs = 0; in ea_dealloc_unstuffed()
326 struct gfs2_ea_header *ea, in ea_remove_unstuffed() argument
339 error = ea_dealloc_unstuffed(ip, bh, ea, prev, (leave) ? &error : NULL); in ea_remove_unstuffed()
351 static inline unsigned int gfs2_ea_strlen(struct gfs2_ea_header *ea) in gfs2_ea_strlen() argument
353 switch (ea->ea_type) { in gfs2_ea_strlen()
355 return 5 + ea->ea_name_len + 1; in gfs2_ea_strlen()
357 return 7 + ea->ea_name_len + 1; in gfs2_ea_strlen()
359 return 9 + ea->ea_name_len + 1; in gfs2_ea_strlen()
366 struct gfs2_ea_header *ea, struct gfs2_ea_header *prev, in ea_list_i() argument
371 unsigned int ea_size = gfs2_ea_strlen(ea); in ea_list_i()
373 if (ea->ea_type == GFS2_EATYPE_UNUSED) in ea_list_i()
384 switch (ea->ea_type) { in ea_list_i()
402 memcpy(er->er_data + ei->ei_size + l, GFS2_EA2NAME(ea), in ea_list_i()
403 ea->ea_name_len); in ea_list_i()
462 static int gfs2_iter_unstuffed(struct gfs2_inode *ip, struct gfs2_ea_header *ea, in gfs2_iter_unstuffed() argument
467 unsigned int amount = GFS2_EA_DATA_LEN(ea); in gfs2_iter_unstuffed()
469 __be64 *dataptrs = GFS2_EA2DATAPTRS(ea); in gfs2_iter_unstuffed()
623 struct gfs2_ea_header *ea; in ea_alloc_blk() local
637 ea = GFS2_EA_BH2FIRST(*bhp); in ea_alloc_blk()
638 ea->ea_rec_len = cpu_to_be32(sdp->sd_jbsize); in ea_alloc_blk()
639 ea->ea_type = GFS2_EATYPE_UNUSED; in ea_alloc_blk()
640 ea->ea_flags = GFS2_EAFLAG_LAST; in ea_alloc_blk()
641 ea->ea_num_ptrs = 0; in ea_alloc_blk()
660 static int ea_write(struct gfs2_inode *ip, struct gfs2_ea_header *ea, in ea_write() argument
666 ea->ea_data_len = cpu_to_be32(er->er_data_len); in ea_write()
667 ea->ea_name_len = er->er_name_len; in ea_write()
668 ea->ea_type = er->er_type; in ea_write()
669 ea->__pad = 0; in ea_write()
671 memcpy(GFS2_EA2NAME(ea), er->er_name, er->er_name_len); in ea_write()
674 ea->ea_num_ptrs = 0; in ea_write()
675 memcpy(GFS2_EA2DATA(ea), er->er_data, er->er_data_len); in ea_write()
677 __be64 *dataptr = GFS2_EA2DATAPTRS(ea); in ea_write()
683 ea->ea_num_ptrs = DIV_ROUND_UP(er->er_data_len, sdp->sd_jbsize); in ea_write()
684 for (x = 0; x < ea->ea_num_ptrs; x++) { in ea_write()
815 static struct gfs2_ea_header *ea_split_ea(struct gfs2_ea_header *ea) in ea_split_ea() argument
817 u32 ea_size = GFS2_EA_SIZE(ea); in ea_split_ea()
818 struct gfs2_ea_header *new = (struct gfs2_ea_header *)((char *)ea + in ea_split_ea()
820 u32 new_size = GFS2_EA_REC_LEN(ea) - ea_size; in ea_split_ea()
821 int last = ea->ea_flags & GFS2_EAFLAG_LAST; in ea_split_ea()
823 ea->ea_rec_len = cpu_to_be32(ea_size); in ea_split_ea()
824 ea->ea_flags ^= last; in ea_split_ea()
835 struct gfs2_ea_header *ea = el->el_ea; in ea_set_remove_stuffed() local
841 if (!prev || !GFS2_EA_IS_STUFFED(ea)) { in ea_set_remove_stuffed()
842 ea->ea_type = GFS2_EATYPE_UNUSED; in ea_set_remove_stuffed()
844 } else if (GFS2_EA2NEXT(prev) != ea) { in ea_set_remove_stuffed()
846 gfs2_assert_withdraw(GFS2_SB(&ip->i_inode), GFS2_EA2NEXT(prev) == ea); in ea_set_remove_stuffed()
849 len = GFS2_EA_REC_LEN(prev) + GFS2_EA_REC_LEN(ea); in ea_set_remove_stuffed()
852 if (GFS2_EA_IS_LAST(ea)) in ea_set_remove_stuffed()
867 struct gfs2_ea_header *ea, struct ea_set *es) in ea_set_simple_noalloc() argument
880 ea = ea_split_ea(ea); in ea_set_simple_noalloc()
882 ea_write(ip, ea, er); in ea_set_simple_noalloc()
903 struct gfs2_ea_header *ea = es->es_ea; in ea_set_simple_alloc() local
909 ea = ea_split_ea(ea); in ea_set_simple_alloc()
911 error = ea_write(ip, ea, er); in ea_set_simple_alloc()
922 struct gfs2_ea_header *ea, struct gfs2_ea_header *prev, in ea_set_simple() argument
933 if (ea->ea_type == GFS2_EATYPE_UNUSED) { in ea_set_simple()
934 if (GFS2_EA_REC_LEN(ea) < size) in ea_set_simple()
936 if (!GFS2_EA_IS_STUFFED(ea)) { in ea_set_simple()
937 error = ea_remove_unstuffed(ip, bh, ea, prev, 1); in ea_set_simple()
942 } else if (GFS2_EA_REC_LEN(ea) - GFS2_EA_SIZE(ea) >= size) in ea_set_simple()
948 error = ea_set_simple_noalloc(ip, bh, ea, es); in ea_set_simple()
955 es->es_ea = ea; in ea_set_simple()
1088 struct gfs2_ea_header *ea = el->el_ea; in ea_remove_stuffed() local
1102 len = GFS2_EA_REC_LEN(prev) + GFS2_EA_REC_LEN(ea); in ea_remove_stuffed()
1105 if (GFS2_EA_IS_LAST(ea)) in ea_remove_stuffed()
1108 ea->ea_type = GFS2_EATYPE_UNUSED; in ea_remove_stuffed()
1239 struct gfs2_ea_header *ea, char *data) in ea_acl_chmod_unstuffed() argument
1242 unsigned int amount = GFS2_EA_DATA_LEN(ea); in ea_acl_chmod_unstuffed()
1250 ret = gfs2_iter_unstuffed(ip, ea, data, NULL); in ea_acl_chmod_unstuffed()