X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Fhpfs%2Fea.c;h=66339dc030e4003849facc162d9822fa0c90e9e0;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=11057ec800f58840548604ab70cadd386c5c29f9;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/fs/hpfs/ea.c b/fs/hpfs/ea.c index 11057ec80..66339dc03 100644 --- a/fs/hpfs/ea.c +++ b/fs/hpfs/ea.c @@ -234,7 +234,7 @@ void hpfs_set_ea(struct inode *inode, struct fnode *fnode, char *key, char *data } pos += ea->namelen + ea->valuelen + 5; } - if (!fnode->ea_size_s) { + if (!fnode->ea_offs) { /*if (fnode->ea_size_s) { hpfs_error(s, "fnode %08x: ea_size_s == %03x, ea_offs == 0", inode->i_ino, fnode->ea_size_s); @@ -242,15 +242,13 @@ void hpfs_set_ea(struct inode *inode, struct fnode *fnode, char *key, char *data }*/ fnode->ea_offs = 0xc4; } - if (fnode->ea_offs < 0xc4 || fnode->ea_offs + fnode->ea_size_s > 0x200) { + if (fnode->ea_offs < 0xc4 || fnode->ea_offs + fnode->acl_size_s + fnode->ea_size_s > 0x200) { hpfs_error(s, "fnode %08x: ea_offs == %03x, ea_size_s == %03x", inode->i_ino, fnode->ea_offs, fnode->ea_size_s); return; } if ((fnode->ea_size_s || !fnode->ea_size_l) && - fnode->ea_offs + fnode->ea_size_s + strlen(key) + size + 5 <= 0x200) { - /* I'm not sure ... maybe we overwrite ACL here. I have no info - on it right now :-( */ + fnode->ea_offs + fnode->acl_size_s + fnode->ea_size_s + strlen(key) + size + 5 <= 0x200) { ea = fnode_end_ea(fnode); *(char *)ea = 0; ea->namelen = strlen(key);