On 2010-11-25, at 02:54, Morten Hustveit wrote: > +static int f_readahead(struct file *filp, unsigned long arg) > +{ > + if (arg) { > + filp->f_ra.ra_pages = (arg + PAGE_SIZE - 1) >> PAGE_SHIFT; Functionality itself is fine, but it would be clearer if you used a better variable name than "arg" here. Something like "readahead_bytes" or similar would make it immediately clear what the parameter is. > + spin_lock(&filp->f_lock); > + filp->f_mode &= ~FMODE_RANDOM; > + spin_unlock(&filp->f_lock); > + } else { > + spin_lock(&filp->f_lock); > + filp->f_mode |= FMODE_RANDOM; > + spin_unlock(&filp->f_lock); > + } > + > + return 0; > +} > + > static long do_fcntl(int fd, unsigned int cmd, unsigned long arg, > struct file *filp) > { > @@ -420,6 +445,9 @@ static long do_fcntl(int fd, unsigned int cmd, unsigned long arg, > case F_GETPIPE_SZ: > err = pipe_fcntl(filp, cmd, arg); > break; > + case F_READAHEAD: > + err = f_readahead(filp, arg); > + break; > default: > break; > } > diff --git a/include/linux/fcntl.h b/include/linux/fcntl.h > index afc00af..69d8e4d 100644 > --- a/include/linux/fcntl.h > +++ b/include/linux/fcntl.h > @@ -28,6 +28,11 @@ > #define F_GETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 8) > > /* > + * Set read-ahead buffer size > + */ > +#define F_READAHEAD (F_LINUX_SPECIFIC_BASE + 9) > + > +/* > * Types of directory notifications that may be requested. > */ > #define DN_ACCESS 0x00000001 /* File accessed */ > -- > 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 Cheers, Andreas -- 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