• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/fs/hpfs/

Lines Matching refs:ea

2  *  linux/fs/hpfs/ea.c
19 struct extended_attribute *ea = (struct extended_attribute *)ex;
26 if (ea->indirect) {
27 if (ea->valuelen != 8) {
28 hpfs_error(s, "ea->indirect set while ea->valuelen!=8, %s %08x, pos %08x",
32 if (hpfs_ea_read(s, a, ano, pos + 4, ea->namelen + 9, ex+4))
34 hpfs_ea_remove(s, ea_sec(ea), ea->anode, ea_len(ea));
36 pos += ea->namelen + ea->valuelen + 5;
79 struct extended_attribute *ea;
81 for (ea = fnode_ea(fnode); ea < ea_end; ea = next_ea(ea))
82 if (!strcmp(ea->name, key)) {
83 if (ea->indirect)
85 if (ea->valuelen >= size)
87 memcpy(buf, ea_data(ea), ea->valuelen);
88 buf[ea->valuelen] = 0;
97 ea = (struct extended_attribute *)ex;
104 if (hpfs_ea_read(s, a, ano, pos + 4, ea->namelen + 1 + (ea->indirect ? 8 : 0), ex + 4))
106 if (!strcmp(ea->name, key)) {
107 if (ea->indirect)
109 if (ea->valuelen >= size)
111 if (hpfs_ea_read(s, a, ano, pos + 4 + ea->namelen + 1, ea->valuelen, buf))
113 buf[ea->valuelen] = 0;
116 pos += ea->namelen + ea->valuelen + 5;
120 if (ea_len(ea) >= size)
122 if (hpfs_ea_read(s, ea_sec(ea), ea->anode, 0, ea_len(ea), buf))
124 buf[ea_len(ea)] = 0;
135 struct extended_attribute *ea;
137 for (ea = fnode_ea(fnode); ea < ea_end; ea = next_ea(ea))
138 if (!strcmp(ea->name, key)) {
139 if (ea->indirect)
140 return get_indirect_ea(s, ea->anode, ea_sec(ea), *size = ea_len(ea));
141 if (!(ret = kmalloc((*size = ea->valuelen) + 1, GFP_NOFS))) {
145 memcpy(ret, ea_data(ea), ea->valuelen);
146 ret[ea->valuelen] = 0;
155 ea = (struct extended_attribute *)ex;
162 if (hpfs_ea_read(s, a, ano, pos + 4, ea->namelen + 1 + (ea->indirect ? 8 : 0), ex + 4))
164 if (!strcmp(ea->name, key)) {
165 if (ea->indirect)
166 return get_indirect_ea(s, ea->anode, ea_sec(ea), *size = ea_len(ea));
167 if (!(ret = kmalloc((*size = ea->valuelen) + 1, GFP_NOFS))) {
171 if (hpfs_ea_read(s, a, ano, pos + 4 + ea->namelen + 1, ea->valuelen, ret)) {
175 ret[ea->valuelen] = 0;
178 pos += ea->namelen + ea->valuelen + 5;
185 * when this ea exists, it MUST have the same size as size of data.
197 struct extended_attribute *ea;
199 for (ea = fnode_ea(fnode); ea < ea_end; ea = next_ea(ea))
200 if (!strcmp(ea->name, key)) {
201 if (ea->indirect) {
202 if (ea_len(ea) == size)
203 set_indirect_ea(s, ea->anode, ea_sec(ea), data, size);
204 } else if (ea->valuelen == size) {
205 memcpy(ea_data(ea), data, size);
215 ea = (struct extended_attribute *)ex;
222 if (hpfs_ea_read(s, a, ano, pos + 4, ea->namelen + 1 + (ea->indirect ? 8 : 0), ex + 4))
224 if (!strcmp(ea->name, key)) {
225 if (ea->indirect) {
226 if (ea_len(ea) == size)
227 set_indirect_ea(s, ea->anode, ea_sec(ea), data, size);
230 if (ea->valuelen == size)
231 hpfs_ea_write(s, a, ano, pos + 4 + ea->namelen + 1, size, data);
235 pos += ea->namelen + ea->valuelen + 5;
253 ea = fnode_end_ea(fnode);
254 *(char *)ea = 0;
255 ea->namelen = strlen(key);
256 ea->valuelen = size;
257 strcpy(ea->name, key);
258 memcpy(ea_data(ea), data, size);
263 But what .. HPFS.IFS has also bugs in ea management. */
294 /* Aargh... don't know how to create ea anodes :-( */