Re: [bug report] fanotify: support reporting non-decodeable file handles

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 25, 2023 at 12:26 PM Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote:
>
> On Wed, May 24, 2023 at 04:06:48PM +0200, Jan Kara wrote:
> > Yes, I've checked and all ->encode_fh() implementations return
> > FILEID_INVALID in case of problems (which are basically always only
> > problems with not enough space in the handle buffer).
>
> ceph_encode_fh() can return -EINVAL

Ouch! thanks for pointing this out

Jeff,

In your own backyard ;-)
Do you think this new information calls for rebasing my fix on top of master
and marking it for stable? or is this still low risk in your opinion?

Thanks,
Amir.


>
> $ smdb.py functions encode_fh > where
> $ for i in $(cut -d '|' -f 3 where | sort -u) ; do smdb.py return_states $i ; done | grep INTER | tee out
>
> regards,
> dan carpenter
>
> fs/btrfs/export.c | btrfs_encode_fh | 36 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/btrfs/export.c | btrfs_encode_fh | 37 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/btrfs/export.c | btrfs_encode_fh | 43 |            77|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/btrfs/export.c | btrfs_encode_fh | 44 |            79|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/btrfs/export.c | btrfs_encode_fh | 45 |            78|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/ceph/export.c | ceph_encode_fh | 69 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/ceph/export.c | ceph_encode_fh | 70 |         (-22)|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/ceph/export.c | ceph_encode_fh | 71 |            78|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/ceph/export.c | ceph_encode_fh | 72 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/ceph/export.c | ceph_encode_fh | 73 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/ceph/export.c | ceph_encode_fh | 88 |             2|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/ceph/export.c | ceph_encode_fh | 89 |             1|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/fat/nfs.c | fat_encode_fh_nostale | 84 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/fat/nfs.c | fat_encode_fh_nostale | 85 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/fat/nfs.c | fat_encode_fh_nostale | 88 |           114|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/fat/nfs.c | fat_encode_fh_nostale | 89 |           113|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/fuse/inode.c | fuse_encode_fh | 475 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/fuse/inode.c | fuse_encode_fh | 478 |           130|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/fuse/inode.c | fuse_encode_fh | 479 |           129|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/gfs2/export.c | gfs2_encode_fh | 37 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/gfs2/export.c | gfs2_encode_fh | 38 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/gfs2/export.c | gfs2_encode_fh | 40 |             4|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/gfs2/export.c | gfs2_encode_fh | 42 |             8|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/isofs/export.c | isofs_export_encode_fh | 93 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/isofs/export.c | isofs_export_encode_fh | 94 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/isofs/export.c | isofs_export_encode_fh | 96 |             2|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/isofs/export.c | isofs_export_encode_fh | 97 |             1|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/kernfs/mount.c | kernfs_encode_fh | 59 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/kernfs/mount.c | kernfs_encode_fh | 60 |           254|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/nfs/export.c | nfs_encode_fh | 39 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/nfs/export.c | nfs_encode_fh | 45 | s32min-s32max|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/nilfs2/namei.c | nilfs_encode_fh | 289 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/nilfs2/namei.c | nilfs_encode_fh | 290 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/nilfs2/namei.c | nilfs_encode_fh | 291 |            98|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/nilfs2/namei.c | nilfs_encode_fh | 292 |            97|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/ocfs2/export.c | ocfs2_encode_fh | 213 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/ocfs2/export.c | ocfs2_encode_fh | 214 |             2|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/ocfs2/export.c | ocfs2_encode_fh | 215 |             1|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/orangefs/super.c | orangefs_encode_fh | 100 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/orangefs/super.c | orangefs_encode_fh | 101 |             2|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/orangefs/super.c | orangefs_encode_fh | 102 |             1|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/overlayfs/export.c | ovl_encode_fh | 111 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/overlayfs/export.c | ovl_encode_fh | 112 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/overlayfs/export.c | ovl_encode_fh | 113 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/overlayfs/export.c | ovl_encode_fh | 114 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/overlayfs/export.c | ovl_encode_fh | 115 |           248|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/reiserfs/inode.c | reiserfs_encode_fh | 740 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/reiserfs/inode.c | reiserfs_encode_fh | 741 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/reiserfs/inode.c | reiserfs_encode_fh | 744 |             3|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/reiserfs/inode.c | reiserfs_encode_fh | 745 |             6|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/reiserfs/inode.c | reiserfs_encode_fh | 746 |             5|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> mm/shmem.c | shmem_encode_fh | 2144 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> mm/shmem.c | shmem_encode_fh | 2149 |             1|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/udf/namei.c | udf_encode_fh | 447 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/udf/namei.c | udf_encode_fh | 448 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/udf/namei.c | udf_encode_fh | 450 |            82|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/udf/namei.c | udf_encode_fh | 451 |            81|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/xfs/xfs_export.c | xfs_fs_encode_fh | 48 |           255|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/xfs/xfs_export.c | xfs_fs_encode_fh | 53 |           130|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/xfs/xfs_export.c | xfs_fs_encode_fh | 54 |           129|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/xfs/xfs_export.c | xfs_fs_encode_fh | 55 |             1|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |
> fs/xfs/xfs_export.c | xfs_fs_encode_fh | 56 |             2|        INTERNAL | -1 |                      | int(*)(struct inode*, uint*, int*, struct inode*) |




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux