ea.c (14da17f9c4a880e3418f7f04071df3cb2e8636e8) ea.c (a19189e5535ed8fd191d8989fc39da1637cfa224)
1/*
2 * linux/fs/hpfs/ea.c
3 *
4 * Mikulas Patocka (mikulas@artax.karlin.mff.cuni.cz), 1998-1999
5 *
6 * handling extended attributes
7 */
8

--- 37 unchanged lines hidden (view full) ---

46 }
47 }
48}
49
50static char *get_indirect_ea(struct super_block *s, int ano, secno a, int size)
51{
52 char *ret;
53 if (!(ret = kmalloc(size + 1, GFP_NOFS))) {
1/*
2 * linux/fs/hpfs/ea.c
3 *
4 * Mikulas Patocka (mikulas@artax.karlin.mff.cuni.cz), 1998-1999
5 *
6 * handling extended attributes
7 */
8

--- 37 unchanged lines hidden (view full) ---

46 }
47 }
48}
49
50static char *get_indirect_ea(struct super_block *s, int ano, secno a, int size)
51{
52 char *ret;
53 if (!(ret = kmalloc(size + 1, GFP_NOFS))) {
54 pr_warn("out of memory for EA\n");
54 pr_err("out of memory for EA\n");
55 return NULL;
56 }
57 if (hpfs_ea_read(s, a, ano, 0, size, ret)) {
58 kfree(ret);
59 return NULL;
60 }
61 ret[size] = 0;
62 return ret;

--- 71 unchanged lines hidden (view full) ---

134 secno a;
135 struct extended_attribute *ea;
136 struct extended_attribute *ea_end = fnode_end_ea(fnode);
137 for (ea = fnode_ea(fnode); ea < ea_end; ea = next_ea(ea))
138 if (!strcmp(ea->name, key)) {
139 if (ea_indirect(ea))
140 return get_indirect_ea(s, ea_in_anode(ea), ea_sec(ea), *size = ea_len(ea));
141 if (!(ret = kmalloc((*size = ea_valuelen(ea)) + 1, GFP_NOFS))) {
55 return NULL;
56 }
57 if (hpfs_ea_read(s, a, ano, 0, size, ret)) {
58 kfree(ret);
59 return NULL;
60 }
61 ret[size] = 0;
62 return ret;

--- 71 unchanged lines hidden (view full) ---

134 secno a;
135 struct extended_attribute *ea;
136 struct extended_attribute *ea_end = fnode_end_ea(fnode);
137 for (ea = fnode_ea(fnode); ea < ea_end; ea = next_ea(ea))
138 if (!strcmp(ea->name, key)) {
139 if (ea_indirect(ea))
140 return get_indirect_ea(s, ea_in_anode(ea), ea_sec(ea), *size = ea_len(ea));
141 if (!(ret = kmalloc((*size = ea_valuelen(ea)) + 1, GFP_NOFS))) {
142 pr_warn("out of memory for EA\n");
142 pr_err("out of memory for EA\n");
143 return NULL;
144 }
145 memcpy(ret, ea_data(ea), ea_valuelen(ea));
146 ret[ea_valuelen(ea)] = 0;
147 return ret;
148 }
149 a = le32_to_cpu(fnode->ea_secno);
150 len = le32_to_cpu(fnode->ea_size_l);

--- 9 unchanged lines hidden (view full) ---

160 }
161 if (hpfs_ea_read(s, a, ano, pos, 4, ex)) return NULL;
162 if (hpfs_ea_read(s, a, ano, pos + 4, ea->namelen + 1 + (ea_indirect(ea) ? 8 : 0), ex + 4))
163 return NULL;
164 if (!strcmp(ea->name, key)) {
165 if (ea_indirect(ea))
166 return get_indirect_ea(s, ea_in_anode(ea), ea_sec(ea), *size = ea_len(ea));
167 if (!(ret = kmalloc((*size = ea_valuelen(ea)) + 1, GFP_NOFS))) {
143 return NULL;
144 }
145 memcpy(ret, ea_data(ea), ea_valuelen(ea));
146 ret[ea_valuelen(ea)] = 0;
147 return ret;
148 }
149 a = le32_to_cpu(fnode->ea_secno);
150 len = le32_to_cpu(fnode->ea_size_l);

--- 9 unchanged lines hidden (view full) ---

160 }
161 if (hpfs_ea_read(s, a, ano, pos, 4, ex)) return NULL;
162 if (hpfs_ea_read(s, a, ano, pos + 4, ea->namelen + 1 + (ea_indirect(ea) ? 8 : 0), ex + 4))
163 return NULL;
164 if (!strcmp(ea->name, key)) {
165 if (ea_indirect(ea))
166 return get_indirect_ea(s, ea_in_anode(ea), ea_sec(ea), *size = ea_len(ea));
167 if (!(ret = kmalloc((*size = ea_valuelen(ea)) + 1, GFP_NOFS))) {
168 pr_warn("out of memory for EA\n");
168 pr_err("out of memory for EA\n");
169 return NULL;
170 }
171 if (hpfs_ea_read(s, a, ano, pos + 4 + ea->namelen + 1, ea_valuelen(ea), ret)) {
172 kfree(ret);
173 return NULL;
174 }
175 ret[ea_valuelen(ea)] = 0;
176 return ret;

--- 191 unchanged lines hidden ---
169 return NULL;
170 }
171 if (hpfs_ea_read(s, a, ano, pos + 4 + ea->namelen + 1, ea_valuelen(ea), ret)) {
172 kfree(ret);
173 return NULL;
174 }
175 ret[ea_valuelen(ea)] = 0;
176 return ret;

--- 191 unchanged lines hidden ---