Lines Matching refs:ea

62 	dxd_t new_ea;		/* dxd to replace ea when modifying xattr */
63 struct metapage *mp; /* metapage containing ea list */
64 struct jfs_ea_list *xattr; /* buffer containing ea list */
95 static inline int name_size(struct jfs_ea *ea)
97 if (is_known_namespace(ea->name))
98 return ea->namelen;
100 return ea->namelen + XATTR_OS2_PREFIX_LEN;
103 static inline int copy_name(char *buffer, struct jfs_ea *ea)
105 int len = ea->namelen;
107 if (!is_known_namespace(ea->name)) {
112 memcpy(buffer, ea->name, ea->namelen);
113 buffer[ea->namelen] = 0;
133 * ea - dxd_t structure to be filled in with necessary EA information
138 * and sets <ea> fields appropriately. Otherwise, returns failure, EA will
144 int size, dxd_t * ea)
159 if (!(ji->mode2 & INLINEEA) && !(ji->ea.flag & DXD_INLINE))
162 DXDsize(ea, size);
163 DXDlength(ea, 0);
164 DXDaddress(ea, 0);
166 ea->flag = DXD_INLINE;
169 ea->flag = 0;
170 DXDsize(ea, 0);
171 DXDlength(ea, 0);
172 DXDaddress(ea, 0);
175 if (ji->ea.flag & DXD_INLINE)
193 * ea - dxd_t structure to be filled in appropriately with where the
202 dxd_t * ea)
220 if (!ea_write_inline(ip, ealist, size, ea))
287 ea->flag = DXD_EXTENT;
288 DXDsize(ea, le32_to_cpu(ealist->size));
289 DXDlength(ea, nblocks);
290 DXDaddress(ea, blkno);
293 if (ji->ea.flag & DXD_INLINE)
320 int ea_size = sizeDXD(&ji->ea);
328 if ((sizeDXD(&ji->ea) > sizeof (ji->i_inline_ea)))
365 if (ji->ea.flag & DXD_INLINE)
368 nbytes = sizeDXD(&ji->ea);
378 nblocks = lengthDXD(&ji->ea) << sbi->l2nbperpage;
379 blkno = addressDXD(&ji->ea) << sbi->l2nbperpage;
431 int ea_size = sizeDXD(&ji->ea);
437 /* When fsck.jfs clears a bad ea, it doesn't clear the size */
438 if (ji->ea.flag == 0)
460 } else if (ji->ea.flag & DXD_INLINE) {
469 if (!(ji->ea.flag & DXD_EXTENT)) {
470 jfs_error(sb, "invalid ea.flag\n");
547 ea_buf->mp = read_metapage(inode, addressDXD(&ji->ea),
548 lengthDXD(&ji->ea) << sb->s_blocksize_bits,
616 /* ->xattr must point to original ea's metapage */
625 if (ji->ea.flag & DXD_EXTENT) {
626 invalidate_dxd_metapages(inode, ji->ea);
627 old_blocks = lengthDXD(&ji->ea);
631 txEA(tid, inode, &ji->ea, &ea_buf->new_ea);
634 if (ji->ea.flag & DXD_INLINE)
637 ji->ea = ea_buf->new_ea;
639 txEA(tid, inode, &ji->ea, NULL);
640 if (ji->ea.flag & DXD_INLINE)
642 ji->ea.flag = 0;
643 ji->ea.size = 0;
659 struct jfs_ea *ea, *old_ea = NULL, *next_ea = NULL;
682 for (ea = FIRST_EA(ealist); ea < END_EALIST(ealist);
683 ea = NEXT_EA(ea)) {
684 if ((namelen == ea->namelen) &&
685 (memcmp(name, ea->name, namelen) == 0)) {
691 old_ea = ea;
692 old_ea_size = EA_SIZE(ea);
693 next_ea = NEXT_EA(ea);
695 new_size += EA_SIZE(ea);
714 * We need to allocate more space for merged ea list.
726 /* Remove old ea of the same name */
738 /* Completely new ea list */
754 ea = (struct jfs_ea *) ((char *) ealist + xattr_size);
755 ea->flag = 0;
756 ea->namelen = namelen;
757 ea->valuelen = (cpu_to_le16(value_len));
758 memcpy(ea->name, name, namelen);
759 ea->name[namelen] = 0;
761 memcpy(&ea->name[namelen + 1], value, value_len);
762 xattr_size += EA_SIZE(ea);
776 * If we're left with an empty list, there's no ea
798 struct jfs_ea *ea;
820 for (ea = FIRST_EA(ealist); ea < END_EALIST(ealist); ea = NEXT_EA(ea))
821 if ((namelen == ea->namelen) &&
822 memcmp(name, ea->name, namelen) == 0) {
824 size = le16_to_cpu(ea->valuelen);
831 value = ((char *) &ea->name) + ea->namelen + 1;
848 static inline int can_list(struct jfs_ea *ea)
850 return (strncmp(ea->name, XATTR_TRUSTED_PREFIX,
862 struct jfs_ea *ea;
879 for (ea = FIRST_EA(ealist); ea < END_EALIST(ealist); ea = NEXT_EA(ea)) {
880 if (can_list(ea))
881 size += name_size(ea) + 1;
894 for (ea = FIRST_EA(ealist); ea < END_EALIST(ealist); ea = NEXT_EA(ea)) {
895 if (can_list(ea)) {
896 int namelen = copy_name(buffer, ea);