Re: Update of file offset on write() etc. is non-atomic with I/O

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Mar 03, 2014 at 09:36:58AM -0800, Linus Torvalds wrote:
> +static struct fd fdget_pos(int fd)
> +{
> +	struct fd f = fdget(fd);
> +	struct file *file = f.file;
> +
> +	if (file && (file->f_mode & FMODE_ATOMIC_POS)) {
> +		if (f.need_put || file_count(file) > 1) {

Um...  That's odd - we *could* get there with f.need_put and
file_count(file) equal to 1, but why would we want to take
f_pos_lock in that case?

And it looks like you've missed compat counterparts.  Other than
that, it'd probably work...  Let me check if there are other
paths we might need to take care of, though.

PS: apologies for being pretty much MIA for the last two weeks; I'd been
ears-deep in interesting scalability crap around vfsmount handling ;-/
Will post the resulting patches for review shortly...
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux