[Click] [PATCH v2 2/5] clickfs: use unlocked_ioctl if it's available

Joonwoo Park joonwpark81 at gmail.com
Tue Feb 1 02:12:50 EST 2011


Hi Eddie,

I quite haven't followed this config lock so I'm not perfectly sure.  I believe this ioctl is for 'clicky'.
But the handler_ioctl() seems to me is already under proper locking.  So I think no additional locking is needed even outside BKL.
Please let me know if you have other thoughts.

Thanks,
Joonwoo

---
As of linux 2.6.36 file_operations.ioctl has removed.
Bobby Longpocket <bobbylongpocket at yahoo.com> pointed out different interface
between ioctl and unlocked_ioctl
---
 linuxmodule/clickfs.cc |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/linuxmodule/clickfs.cc b/linuxmodule/clickfs.cc
index 123e143..df4b99d 100644
--- a/linuxmodule/clickfs.cc
+++ b/linuxmodule/clickfs.cc
@@ -891,6 +891,15 @@ handler_ioctl(struct inode *inode, struct file *filp,
     return retval;
 }
 
+#if HAVE_UNLOCKED_IOCTL
+static long
+handler_unlocked_ioctl(struct file *filp, unsigned command,
+		       unsigned long address)
+{
+    return handler_ioctl(filp->f_dentry->d_inode, filp, command, address);
+}
+#endif
+
 #if INO_DEBUG
 static String
 read_ino_info(Element *, void *)
@@ -961,7 +970,11 @@ init_clickfs()
 
     click_handler_file_ops->read = handler_read;
     click_handler_file_ops->write = handler_write;
+#if HAVE_UNLOCKED_IOCTL
+    click_handler_file_ops->unlocked_ioctl = handler_unlocked_ioctl;
+#else
     click_handler_file_ops->ioctl = handler_ioctl;
+#endif
     click_handler_file_ops->open = handler_open;
     click_handler_file_ops->flush = handler_flush;
     click_handler_file_ops->release = handler_release;
-- 
1.7.1
---

On Mon, Jan 31, 2011 at 09:26:56AM -0800, Joonwoo Park wrote:
> Oh.. I just noticed that unlocked_ioctl() doesn't take inode.  Will
> have revised one. (presumably two as the there is another patch on
> this)
> 
> Thanks!
> Joonwoo
> 
> On Sun, Jan 30, 2011 at 8:22 PM, Bobby Longpocket
> <bobbylongpocket at yahoo.com> wrote:
> > Hi Joonwoo,
> >
> > This patch doesn't look right.  The arguments for the unlocked_ioctl() interface are different than those for the old ioctl() interface.
> >
> >
> >
> > --- On Sun, 1/30/11, click-request at pdos.csail.mit.edu <click-request at pdos.csail.mit.edu> wrote:
> >> Message: 2
> >> Date: Sun, 30 Jan 2011 01:18:58 -0800
> >> From: Joonwoo Park <joonwpark81 at gmail.com>
> >> Subject: [Click]  [PATCH 2/5] clickfs: use
> >> unlocked_ioctl on linux
> >>     2.6.36+
> >> To: Eddie Kohler <kohler at cs.ucla.edu>
> >> Cc: click at pdos.csail.mit.edu
> >> Message-ID: <20110130091858.GB25293 at gm>
> >> Content-Type: text/plain; charset="us-ascii"
> >>
> >> As of linux 2.6.36 file_operations.ioctl has removed.
> >>
> >> Signed-off-by: Joonwoo Park <joonwpark81 at gmail.com>
> >> ---
> >>  linuxmodule/clickfs.cc |    4 ++++
> >>  1 files changed, 4 insertions(+), 0 deletions(-)
> >>
> >> diff --git a/linuxmodule/clickfs.cc
> >> b/linuxmodule/clickfs.cc
> >> index 123e143..59db23c 100644
> >> --- a/linuxmodule/clickfs.cc
> >> +++ b/linuxmodule/clickfs.cc
> >> @@ -961,7 +961,11 @@ init_clickfs()
> >>
> >>      click_handler_file_ops->read =
> >> handler_read;
> >>      click_handler_file_ops->write =
> >> handler_write;
> >> +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 36)
> >> +    click_handler_file_ops->unlocked_ioctl =
> >> handler_ioctl;
> >> +#else
> >>      click_handler_file_ops->ioctl =
> >> handler_ioctl;
> >> +#endif
> >>      click_handler_file_ops->open =
> >> handler_open;
> >>      click_handler_file_ops->flush =
> >> handler_flush;
> >>      click_handler_file_ops->release
> >> = handler_release;
> >> --
> >> 1.7.1
> >>
> >
> >
> >
> >
> > _______________________________________________
> > click mailing list
> > click at amsterdam.lcs.mit.edu
> > https://amsterdam.lcs.mit.edu/mailman/listinfo/click
> >
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-clickfs-use-unlocked_ioctl-on-linux-2.6.36.patch
Type: text/x-diff
Size: 1497 bytes
Desc: not available
Url : http://amsterdam.lcs.mit.edu/pipermail/click/attachments/20110131/b7c3992e/attachment.patch 


More information about the click mailing list