Message ID | 1427211349-8621-1-git-send-email-tomvanbraeckel@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Err, upon further inspection, I think that this was a false positive. Btrfs relies on the initial value of the private_data member of a file being NULL in the regular ioctl operation handler for BTRFS_IOC_TRANS_START but it does not use the miscdevice framework for those files. It *does* use the miscdevice framework in the ioctl operation handler of the /dev/btrfs-control file but there it does not use the file's private_data member. So IMHO, the proposed patch is not necessary... -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Am 31.03.2015 14:31 schrieb Tom Van Braeckel: > Err, upon further inspection, I think that this was a false positive. > > Btrfs relies on the initial value of the private_data member of a file > being NULL in the regular ioctl operation handler for > BTRFS_IOC_TRANS_START but it does not use the miscdevice framework for > those files. > > It *does* use the miscdevice framework in the ioctl operation handler > of the /dev/btrfs-control file but there it does not use the file's > private_data member. So IMHO, the proposed patch is not necessary... This is offtopic, assuming you are right and didn't find more affected places: Then I would say you could re-post the real change (to misc_open() ) to the relevant people for 4.2 (not 4.1), so either wait for 4.0 to be released or try something like "for 4.2" in the topic (or as a comment after the --- dashes in the patch email) I would want to have it in -next for one cycle at least. Further, I would remove the code-comment you had here https://lkml.org/lkml/2015/1/9/718 because GregKH already pulled this in (a little too early ;) : https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=03190c67ff72b5c56b24266762ab8abe68970f45 which is extractable kernel documenation. You could somehow link to it in the commit message. martin -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index 05fef19..3c30195 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -1908,6 +1908,17 @@ static struct file_system_type btrfs_fs_type = { }; MODULE_ALIAS_FS("btrfs"); +static int btrfs_control_open(struct inode *inode, struct file *file) +{ + /* + * The control file's private_data is used to hold the + * transaction when it is started and is used to keep + * track of whether a transaction is already in progress. + */ + file->private_data = NULL; + return 0; +} + /* * used by btrfsctl to scan devices when no FS is mounted */ @@ -2009,6 +2020,7 @@ static const struct super_operations btrfs_super_ops = { }; static const struct file_operations btrfs_ctl_fops = { + .open = btrfs_control_open, .unlocked_ioctl = btrfs_control_ioctl, .compat_ioctl = btrfs_control_ioctl, .owner = THIS_MODULE,