- if ((oflag & O_NOFOLLOW) ) {
- ret = sys_lsetxattr(uname, attruname, ibuf, attrsize,attr_flag);
- }
- else {
- ret = sys_setxattr(uname, attruname, ibuf, attrsize, attr_flag);
+ /* PBaranski fix */
+ if ( fd != -1) {
+ LOG(log_debug, logtype_afpd, "sys_set_ea(%s): file is already opened", uname);
+ ret = sys_fsetxattr(fd, attruname, ibuf, attrsize, attr_flag);
+ } else {
+ if ((oflag & O_NOFOLLOW) ) {
+ ret = sys_lsetxattr(uname, attruname, ibuf, attrsize,attr_flag);
+ }
+ else {
+ ret = sys_setxattr(uname, attruname, ibuf, attrsize, attr_flag);
+ }