From mboxrd@z Thu Jan 1 00:00:00 1970 From: Changli Gao Subject: Re: [PATCH v2 4/4] splice: fix updating sd->pos wrongly Date: Sat, 29 May 2010 22:22:54 +0800 Message-ID: References: <1274885083-15735-1-git-send-email-xiaosuo@gmail.com> <20100529140901.GD3106@shareable.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: Miklos Szeredi , axboe@kernel.dk, viro@zeniv.linux.org.uk, mszeredi@suse.cz, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: Jamie Lokier Return-path: In-Reply-To: <20100529140901.GD3106@shareable.org> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Sat, May 29, 2010 at 10:09 PM, Jamie Lokier wr= ote: > > Not true if the "file" is /dev/mem or /dev/kmem. =C2=A0The starting o= ffset > can be negative, so can end at zero. > > It's an obscure case and I don't know if you can sendfile from > /dev/{,k}mem anyway :-) but illustrates why sd->pos !=3D 0 is dubious= =2E > So the safe way is checking if splice_read() updates pos or not, isn't = it? if (sd->pos !=3D prev_pos) sd->pos =3D prev_pos + ret; --=20 Regards=EF=BC=8C Changli Gao(xiaosuo@gmail.com)