lkml.org 
[lkml]   [2008]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: oops in file_storage.c
On Thu, 23 Oct 2008, Manish Lachwani wrote:

> Hi Alan,
>
> Yes, I am trying out the changes below. Will let you know how it goes.
> If it works well, I will send an updated patch.

>
> diff --git a/drivers/usb/gadget/file_storage.c
> b/drivers/usb/gadget/file_storage.c index 3e807f0..844f992 100644 ---
> a/drivers/usb/gadget/file_storage.c +++
> b/drivers/usb/gadget/file_storage.c @@ -1927,26 +1927,11 @@ static
> int do_write(struct fsg_dev *fsg)
> static int fsync_sub(struct lun *curlun)
> {
> struct file *filp = curlun->filp;
> - struct inode *inode;
> - int rc, err;
>
> if (curlun->ro || !filp)
> return 0;
> - if (!filp->f_op || !filp->f_op->fsync)
> - return -EINVAL;
>
> - inode = filp->f_path.dentry->d_inode;
> - mutex_lock(&inode->i_mutex);
> - rc = filemap_fdatawrite(inode->i_mapping);
> - err = filp->f_op->fsync(filp, filp->f_path.dentry, 1);
> - if (!rc)
> - rc = err;
> - err = filemap_fdatawait(inode->i_mapping);
> - if (!rc)
> - rc = err;
> - mutex_unlock(&inode->i_mutex);
> - VLDBG(curlun, "fdatasync -> %d\n", rc);
> - return rc;
> + return do_fsync(filp, 0);
> }
>
> static void fsync_all(struct fsg_dev *fsg)
> diff --git a/fs/sync.c b/fs/sync.c
> index e700eb1..53ff1f3 100644
> --- a/fs/sync.c
> +++ b/fs/sync.c
> @@ -111,6 +111,7 @@ long do_fsync(struct file *file, int datasync)
> out:
> return ret;
> }
> +EXPORT_SYMBOL(do_fsync);
>
> static long __do_fsync(unsigned int fd, int datasync)
> {

Any news on this?

Alan Stern



\
 
 \ /
  Last update: 2008-11-17 22:25    [W:0.492 / U:0.236 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site