Date: Sat, 30 Mar 2013 14:30:21 -0700 From: mdf@FreeBSD.org To: freebsd-hackers <freebsd-hackers@freebsd.org> Subject: extattr_set_* return type Message-ID: <CAMBSHm9kBuE4H5VDT3iHTsis24-J3nj8hhLBjOX3DS4k5qZRKA@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Despite the man page correctly describing the return value for extattr_set_*, I thought recently that they returned 0/-1 for success/failure, not the number of bytes written, like write(2). This is because extattr_set_* is declared as returning an int, not an ssize_t. Both extattr_get and extattr_list return ssize_t, so this is inconsistent. The patch at http://people.freebsd.org/~mdf/0001-Fix-return-type-of-extattr_set_-and-fix-rmextattr-8-.patchfixes this. It compiles but it's untested. I don't think any compat shims are needed, since an old application will still sign extend and this will work (it's very unlikely anyone does extattr_set for 2GB or more). If anyone actually uses extattr on 64-bit, please test a new kernel but old userspace to be sure nothing is broken. I plan to commit this next week if I don't hear otherwise. Thanks, matthew
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAMBSHm9kBuE4H5VDT3iHTsis24-J3nj8hhLBjOX3DS4k5qZRKA>