On April 18, 2016 2:14:12 AM PDT, "Richard W.M. Jones" <rjones@xxxxxxxxxx> wrote: >On Sun, Apr 17, 2016 at 06:57:36PM -0700, Josh Triplett wrote: >> O_NOUMASK seems potentially useful to support implementation of umask >> entirely in userspace, which also addresses thread-safety. A program >> could read its process umask out at startup, handle umask entirely in >> userspace (including for threads), and only interact with the system >> umask after fork and before exec. > >I had a look at O_NOUMASK and there are a few problems: > >It's relatively easy to implement for open(2). A few filesystems >implement their own open so I had to go into those filesystems and >modify how they handle current_umask too. And FUSE support is tricky >so I passed on that. > >The real problem is that mkdir/mkdirat/mknod/mknodat are affected by >umask, but there is no convenient flags parameter to pass the >O_NOUMASK flag. So I think the patch only half-solves the problem. > >I have a patch which needs a bit more testing, which I can post if you >think that's helpful, but I don't think it would be acceptable in its >current state. > >Rich. Ironically this illustrates one of the limitations with flags arguments: this really belongs in the S_-flags, but we can't assume userspace is clean there... anymore than we can repurpose umask(-1). -- Sent from my Android device with K-9 Mail. Please excuse brevity and formatting. -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html