Loading drivers/bluetooth/hci_vhci.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -181,7 +181,7 @@ static inline ssize_t vhci_get_user(struct vhci_data *data, if (!skb) if (!skb) return -ENOMEM; return -ENOMEM; if (copy_from_iter(skb_put(skb, len), len, from) != len) { if (!copy_from_iter_full(skb_put(skb, len), len, from)) { kfree_skb(skb); kfree_skb(skb); return -EFAULT; return -EFAULT; } } Loading drivers/net/macvtap.c +1 −3 Original line number Original line Diff line number Diff line Loading @@ -673,7 +673,6 @@ static ssize_t macvtap_get_user(struct macvtap_queue *q, struct msghdr *m, int depth; int depth; bool zerocopy = false; bool zerocopy = false; size_t linear; size_t linear; ssize_t n; if (q->flags & IFF_VNET_HDR) { if (q->flags & IFF_VNET_HDR) { vnet_hdr_len = q->vnet_hdr_sz; vnet_hdr_len = q->vnet_hdr_sz; Loading @@ -684,8 +683,7 @@ static ssize_t macvtap_get_user(struct macvtap_queue *q, struct msghdr *m, len -= vnet_hdr_len; len -= vnet_hdr_len; err = -EFAULT; err = -EFAULT; n = copy_from_iter(&vnet_hdr, sizeof(vnet_hdr), from); if (!copy_from_iter_full(&vnet_hdr, sizeof(vnet_hdr), from)) if (n != sizeof(vnet_hdr)) goto err; goto err; iov_iter_advance(from, vnet_hdr_len - sizeof(vnet_hdr)); iov_iter_advance(from, vnet_hdr_len - sizeof(vnet_hdr)); if ((vnet_hdr.flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) && if ((vnet_hdr.flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) && Loading drivers/net/tun.c +2 −5 Original line number Original line Diff line number Diff line Loading @@ -1171,7 +1171,6 @@ static ssize_t tun_get_user(struct tun_struct *tun, struct tun_file *tfile, bool zerocopy = false; bool zerocopy = false; int err; int err; u32 rxhash; u32 rxhash; ssize_t n; if (!(tun->dev->flags & IFF_UP)) if (!(tun->dev->flags & IFF_UP)) return -EIO; return -EIO; Loading @@ -1181,8 +1180,7 @@ static ssize_t tun_get_user(struct tun_struct *tun, struct tun_file *tfile, return -EINVAL; return -EINVAL; len -= sizeof(pi); len -= sizeof(pi); n = copy_from_iter(&pi, sizeof(pi), from); if (!copy_from_iter_full(&pi, sizeof(pi), from)) if (n != sizeof(pi)) return -EFAULT; return -EFAULT; } } Loading @@ -1191,8 +1189,7 @@ static ssize_t tun_get_user(struct tun_struct *tun, struct tun_file *tfile, return -EINVAL; return -EINVAL; len -= tun->vnet_hdr_sz; len -= tun->vnet_hdr_sz; n = copy_from_iter(&gso, sizeof(gso), from); if (!copy_from_iter_full(&gso, sizeof(gso), from)) if (n != sizeof(gso)) return -EFAULT; return -EFAULT; if ((gso.flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) && if ((gso.flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) && Loading drivers/staging/lustre/lustre/llite/dcache.c +7 −26 Original line number Original line Diff line number Diff line Loading @@ -57,9 +57,6 @@ static void ll_release(struct dentry *de) LASSERT(de); LASSERT(de); lld = ll_d2d(de); lld = ll_d2d(de); if (!lld) /* NFS copies the de->d_op methods (bug 4655) */ return; if (lld->lld_it) { if (lld->lld_it) { ll_intent_release(lld->lld_it); ll_intent_release(lld->lld_it); kfree(lld->lld_it); kfree(lld->lld_it); Loading Loading @@ -126,30 +123,13 @@ static int ll_ddelete(const struct dentry *de) return 0; return 0; } } int ll_d_init(struct dentry *de) static int ll_d_init(struct dentry *de) { { CDEBUG(D_DENTRY, "ldd on dentry %pd (%p) parent %p inode %p refc %d\n", struct ll_dentry_data *lld = kzalloc(sizeof(*lld), GFP_KERNEL); de, de, de->d_parent, d_inode(de), d_count(de)); if (unlikely(!lld)) if (!de->d_fsdata) { struct ll_dentry_data *lld; lld = kzalloc(sizeof(*lld), GFP_NOFS); if (likely(lld)) { spin_lock(&de->d_lock); if (likely(!de->d_fsdata)) { de->d_fsdata = lld; __d_lustre_invalidate(de); } else { kfree(lld); } spin_unlock(&de->d_lock); } else { return -ENOMEM; return -ENOMEM; } lld->lld_invalid = 1; } de->d_fsdata = lld; LASSERT(de->d_op == &ll_d_ops); return 0; return 0; } } Loading Loading @@ -300,6 +280,7 @@ static int ll_revalidate_nd(struct dentry *dentry, unsigned int flags) } } const struct dentry_operations ll_d_ops = { const struct dentry_operations ll_d_ops = { .d_init = ll_d_init, .d_revalidate = ll_revalidate_nd, .d_revalidate = ll_revalidate_nd, .d_release = ll_release, .d_release = ll_release, .d_delete = ll_ddelete, .d_delete = ll_ddelete, Loading drivers/staging/lustre/lustre/llite/llite_internal.h +3 −14 Original line number Original line Diff line number Diff line Loading @@ -801,7 +801,6 @@ int ll_hsm_release(struct inode *inode); /* llite/dcache.c */ /* llite/dcache.c */ int ll_d_init(struct dentry *de); extern const struct dentry_operations ll_d_ops; extern const struct dentry_operations ll_d_ops; void ll_intent_drop_lock(struct lookup_intent *); void ll_intent_drop_lock(struct lookup_intent *); void ll_intent_release(struct lookup_intent *); void ll_intent_release(struct lookup_intent *); Loading Loading @@ -1189,7 +1188,7 @@ dentry_may_statahead(struct inode *dir, struct dentry *dentry) * 'lld_sa_generation == lli->lli_sa_generation'. * 'lld_sa_generation == lli->lli_sa_generation'. */ */ ldd = ll_d2d(dentry); ldd = ll_d2d(dentry); if (ldd && ldd->lld_sa_generation == lli->lli_sa_generation) if (ldd->lld_sa_generation == lli->lli_sa_generation) return false; return false; return true; return true; Loading Loading @@ -1317,17 +1316,7 @@ static inline void ll_set_lock_data(struct obd_export *exp, struct inode *inode, static inline int d_lustre_invalid(const struct dentry *dentry) static inline int d_lustre_invalid(const struct dentry *dentry) { { struct ll_dentry_data *lld = ll_d2d(dentry); return ll_d2d(dentry)->lld_invalid; return !lld || lld->lld_invalid; } static inline void __d_lustre_invalidate(struct dentry *dentry) { struct ll_dentry_data *lld = ll_d2d(dentry); if (lld) lld->lld_invalid = 1; } } /* /* Loading @@ -1343,7 +1332,7 @@ static inline void d_lustre_invalidate(struct dentry *dentry, int nested) spin_lock_nested(&dentry->d_lock, spin_lock_nested(&dentry->d_lock, nested ? DENTRY_D_LOCK_NESTED : DENTRY_D_LOCK_NORMAL); nested ? DENTRY_D_LOCK_NESTED : DENTRY_D_LOCK_NORMAL); __d_lustre_invalidate(dentry); ll_d2d(dentry)->lld_invalid = 1; /* /* * We should be careful about dentries created by d_obtain_alias(). * We should be careful about dentries created by d_obtain_alias(). * These dentries are not put in the dentry tree, instead they are * These dentries are not put in the dentry tree, instead they are Loading Loading
drivers/bluetooth/hci_vhci.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -181,7 +181,7 @@ static inline ssize_t vhci_get_user(struct vhci_data *data, if (!skb) if (!skb) return -ENOMEM; return -ENOMEM; if (copy_from_iter(skb_put(skb, len), len, from) != len) { if (!copy_from_iter_full(skb_put(skb, len), len, from)) { kfree_skb(skb); kfree_skb(skb); return -EFAULT; return -EFAULT; } } Loading
drivers/net/macvtap.c +1 −3 Original line number Original line Diff line number Diff line Loading @@ -673,7 +673,6 @@ static ssize_t macvtap_get_user(struct macvtap_queue *q, struct msghdr *m, int depth; int depth; bool zerocopy = false; bool zerocopy = false; size_t linear; size_t linear; ssize_t n; if (q->flags & IFF_VNET_HDR) { if (q->flags & IFF_VNET_HDR) { vnet_hdr_len = q->vnet_hdr_sz; vnet_hdr_len = q->vnet_hdr_sz; Loading @@ -684,8 +683,7 @@ static ssize_t macvtap_get_user(struct macvtap_queue *q, struct msghdr *m, len -= vnet_hdr_len; len -= vnet_hdr_len; err = -EFAULT; err = -EFAULT; n = copy_from_iter(&vnet_hdr, sizeof(vnet_hdr), from); if (!copy_from_iter_full(&vnet_hdr, sizeof(vnet_hdr), from)) if (n != sizeof(vnet_hdr)) goto err; goto err; iov_iter_advance(from, vnet_hdr_len - sizeof(vnet_hdr)); iov_iter_advance(from, vnet_hdr_len - sizeof(vnet_hdr)); if ((vnet_hdr.flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) && if ((vnet_hdr.flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) && Loading
drivers/net/tun.c +2 −5 Original line number Original line Diff line number Diff line Loading @@ -1171,7 +1171,6 @@ static ssize_t tun_get_user(struct tun_struct *tun, struct tun_file *tfile, bool zerocopy = false; bool zerocopy = false; int err; int err; u32 rxhash; u32 rxhash; ssize_t n; if (!(tun->dev->flags & IFF_UP)) if (!(tun->dev->flags & IFF_UP)) return -EIO; return -EIO; Loading @@ -1181,8 +1180,7 @@ static ssize_t tun_get_user(struct tun_struct *tun, struct tun_file *tfile, return -EINVAL; return -EINVAL; len -= sizeof(pi); len -= sizeof(pi); n = copy_from_iter(&pi, sizeof(pi), from); if (!copy_from_iter_full(&pi, sizeof(pi), from)) if (n != sizeof(pi)) return -EFAULT; return -EFAULT; } } Loading @@ -1191,8 +1189,7 @@ static ssize_t tun_get_user(struct tun_struct *tun, struct tun_file *tfile, return -EINVAL; return -EINVAL; len -= tun->vnet_hdr_sz; len -= tun->vnet_hdr_sz; n = copy_from_iter(&gso, sizeof(gso), from); if (!copy_from_iter_full(&gso, sizeof(gso), from)) if (n != sizeof(gso)) return -EFAULT; return -EFAULT; if ((gso.flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) && if ((gso.flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) && Loading
drivers/staging/lustre/lustre/llite/dcache.c +7 −26 Original line number Original line Diff line number Diff line Loading @@ -57,9 +57,6 @@ static void ll_release(struct dentry *de) LASSERT(de); LASSERT(de); lld = ll_d2d(de); lld = ll_d2d(de); if (!lld) /* NFS copies the de->d_op methods (bug 4655) */ return; if (lld->lld_it) { if (lld->lld_it) { ll_intent_release(lld->lld_it); ll_intent_release(lld->lld_it); kfree(lld->lld_it); kfree(lld->lld_it); Loading Loading @@ -126,30 +123,13 @@ static int ll_ddelete(const struct dentry *de) return 0; return 0; } } int ll_d_init(struct dentry *de) static int ll_d_init(struct dentry *de) { { CDEBUG(D_DENTRY, "ldd on dentry %pd (%p) parent %p inode %p refc %d\n", struct ll_dentry_data *lld = kzalloc(sizeof(*lld), GFP_KERNEL); de, de, de->d_parent, d_inode(de), d_count(de)); if (unlikely(!lld)) if (!de->d_fsdata) { struct ll_dentry_data *lld; lld = kzalloc(sizeof(*lld), GFP_NOFS); if (likely(lld)) { spin_lock(&de->d_lock); if (likely(!de->d_fsdata)) { de->d_fsdata = lld; __d_lustre_invalidate(de); } else { kfree(lld); } spin_unlock(&de->d_lock); } else { return -ENOMEM; return -ENOMEM; } lld->lld_invalid = 1; } de->d_fsdata = lld; LASSERT(de->d_op == &ll_d_ops); return 0; return 0; } } Loading Loading @@ -300,6 +280,7 @@ static int ll_revalidate_nd(struct dentry *dentry, unsigned int flags) } } const struct dentry_operations ll_d_ops = { const struct dentry_operations ll_d_ops = { .d_init = ll_d_init, .d_revalidate = ll_revalidate_nd, .d_revalidate = ll_revalidate_nd, .d_release = ll_release, .d_release = ll_release, .d_delete = ll_ddelete, .d_delete = ll_ddelete, Loading
drivers/staging/lustre/lustre/llite/llite_internal.h +3 −14 Original line number Original line Diff line number Diff line Loading @@ -801,7 +801,6 @@ int ll_hsm_release(struct inode *inode); /* llite/dcache.c */ /* llite/dcache.c */ int ll_d_init(struct dentry *de); extern const struct dentry_operations ll_d_ops; extern const struct dentry_operations ll_d_ops; void ll_intent_drop_lock(struct lookup_intent *); void ll_intent_drop_lock(struct lookup_intent *); void ll_intent_release(struct lookup_intent *); void ll_intent_release(struct lookup_intent *); Loading Loading @@ -1189,7 +1188,7 @@ dentry_may_statahead(struct inode *dir, struct dentry *dentry) * 'lld_sa_generation == lli->lli_sa_generation'. * 'lld_sa_generation == lli->lli_sa_generation'. */ */ ldd = ll_d2d(dentry); ldd = ll_d2d(dentry); if (ldd && ldd->lld_sa_generation == lli->lli_sa_generation) if (ldd->lld_sa_generation == lli->lli_sa_generation) return false; return false; return true; return true; Loading Loading @@ -1317,17 +1316,7 @@ static inline void ll_set_lock_data(struct obd_export *exp, struct inode *inode, static inline int d_lustre_invalid(const struct dentry *dentry) static inline int d_lustre_invalid(const struct dentry *dentry) { { struct ll_dentry_data *lld = ll_d2d(dentry); return ll_d2d(dentry)->lld_invalid; return !lld || lld->lld_invalid; } static inline void __d_lustre_invalidate(struct dentry *dentry) { struct ll_dentry_data *lld = ll_d2d(dentry); if (lld) lld->lld_invalid = 1; } } /* /* Loading @@ -1343,7 +1332,7 @@ static inline void d_lustre_invalidate(struct dentry *dentry, int nested) spin_lock_nested(&dentry->d_lock, spin_lock_nested(&dentry->d_lock, nested ? DENTRY_D_LOCK_NESTED : DENTRY_D_LOCK_NORMAL); nested ? DENTRY_D_LOCK_NESTED : DENTRY_D_LOCK_NORMAL); __d_lustre_invalidate(dentry); ll_d2d(dentry)->lld_invalid = 1; /* /* * We should be careful about dentries created by d_obtain_alias(). * We should be careful about dentries created by d_obtain_alias(). * These dentries are not put in the dentry tree, instead they are * These dentries are not put in the dentry tree, instead they are Loading