* [PATCH as442] gcc 2.96 workaround in sys_getdents64()
@ 2005-01-13 16:39 Alan Stern
2005-01-13 18:47 ` Andreas Dilger
0 siblings, 1 reply; 2+ messages in thread
From: Alan Stern @ 2005-01-13 16:39 UTC (permalink / raw)
To: Andrew Morton; +Cc: Kernel development list
Andrew:
How serious are people about continuing to support versions of gcc prior
to 3.0? My copy of RedHat's gcc-2.96 croaks without this patch:
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
===== fs/readdir.c 1.26 vs edited =====
--- 1.26/fs/readdir.c 2005-01-09 08:29:46 -05:00
+++ edited/fs/readdir.c 2005-01-13 11:31:58 -05:00
@@ -288,7 +288,7 @@
if (lastdirent) {
typeof(lastdirent->d_off) d_off = file->f_pos;
error = count - buf.count;
- if (__put_user(d_off, &lastdirent->d_off))
+ if (put_user(d_off, &lastdirent->d_off))
error = -EFAULT;
}
For changes involving code that's not executed very often I wouldn't
hesitate to recommend adopting such a patch. Does sys_getdents64() fall
in that category? Also I'm not sure how much extra overhead is added by
calling put_user() rather than __put_user().
So I'll leave it up to you to decide whether the patch should be applied.
Alan Stern
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [PATCH as442] gcc 2.96 workaround in sys_getdents64()
2005-01-13 16:39 [PATCH as442] gcc 2.96 workaround in sys_getdents64() Alan Stern
@ 2005-01-13 18:47 ` Andreas Dilger
0 siblings, 0 replies; 2+ messages in thread
From: Andreas Dilger @ 2005-01-13 18:47 UTC (permalink / raw)
To: Alan Stern; +Cc: Andrew Morton, Kernel development list
[-- Attachment #1: Type: text/plain, Size: 1349 bytes --]
On Jan 13, 2005 11:39 -0500, Alan Stern wrote:
> How serious are people about continuing to support versions of gcc prior
> to 3.0? My copy of RedHat's gcc-2.96 croaks without this patch:
>
>
> Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
>
> ===== fs/readdir.c 1.26 vs edited =====
> --- 1.26/fs/readdir.c 2005-01-09 08:29:46 -05:00
> +++ edited/fs/readdir.c 2005-01-13 11:31:58 -05:00
> @@ -288,7 +288,7 @@
> if (lastdirent) {
> typeof(lastdirent->d_off) d_off = file->f_pos;
> error = count - buf.count;
> - if (__put_user(d_off, &lastdirent->d_off))
> + if (put_user(d_off, &lastdirent->d_off))
> error = -EFAULT;
> }
>
>
> For changes involving code that's not executed very often I wouldn't
> hesitate to recommend adopting such a patch. Does sys_getdents64() fall
> in that category? Also I'm not sure how much extra overhead is added by
> calling put_user() rather than __put_user().
The getdents64() syscall is used for every readdir, though I doubt the
extra overhead would be fatal. In any case, Linus already accepted a
different patch which set "error = -EFAULT" first, then "count - buf.count"
afterward.
Cheers, Andreas
--
Andreas Dilger
http://sourceforge.net/projects/ext2resize/
http://members.shaw.ca/adilger/ http://members.shaw.ca/golinux/
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2005-01-13 18:54 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-01-13 16:39 [PATCH as442] gcc 2.96 workaround in sys_getdents64() Alan Stern
2005-01-13 18:47 ` Andreas Dilger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®