--- XASetOperation.c 2005-04-13 07:12:23.000000000 +0200
+++ XASetOperation.c.new 2006-04-19 17:35:55.000000000 +0200
#include <XAOperationInternal.h>
typedef struct __XASetOperation
Boolean XASetOperationPerform(XAOperationRef opaqueRef, int fd, CFStringRef path)
XASetOperationRef operationRef = (XASetOperationRef)opaqueRef;
if(CFStringGetCString(operationRef->key, key, bSize, kCFStringEncodingUTF8))
- size = fsetxattr(fd, key, (void *)bytes, size, position, options);
+ int fRet = fcntl(fd, F_NOCACHE, 0x01);
+ fprintf(stderr, "WARN: fcntl for key \"%s\" failed\n", key);
+ int iRet = fsetxattr(fd, key, (void *)bytes, size, position, options);
+ if(errno != EEXIST || errno != ENOATTR)
+ fprintf(stderr, "ERROR: fsetxattr failed: %s\n", strerror(errno));