summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/9p/Kconfig1
-rw-r--r--fs/9p/cache.c17
-rw-r--r--fs/9p/cache.h17
-rw-r--r--fs/9p/fid.c17
-rw-r--r--fs/9p/fid.h17
-rw-r--r--fs/9p/v9fs.c17
-rw-r--r--fs/9p/v9fs.h17
-rw-r--r--fs/9p/v9fs_vfs.h17
-rw-r--r--fs/9p/vfs_addr.c17
-rw-r--r--fs/9p/vfs_dentry.c17
-rw-r--r--fs/9p/vfs_dir.c17
-rw-r--r--fs/9p/vfs_file.c17
-rw-r--r--fs/9p/vfs_inode.c17
-rw-r--r--fs/9p/vfs_inode_dotl.c17
-rw-r--r--fs/9p/vfs_super.c17
-rw-r--r--fs/Kconfig1
-rw-r--r--fs/Kconfig.binfmt1
-rw-r--r--fs/adfs/Kconfig1
-rw-r--r--fs/adfs/Makefile1
-rw-r--r--fs/adfs/adfs.h14
-rw-r--r--fs/adfs/dir.c142
-rw-r--r--fs/adfs/dir_f.c48
-rw-r--r--fs/adfs/dir_f.h5
-rw-r--r--fs/adfs/dir_fplus.c29
-rw-r--r--fs/adfs/dir_fplus.h5
-rw-r--r--fs/adfs/inode.c5
-rw-r--r--fs/adfs/map.c5
-rw-r--r--fs/adfs/super.c5
-rw-r--r--fs/affs/Kconfig1
-rw-r--r--fs/affs/Makefile1
-rw-r--r--fs/affs/super.c1
-rw-r--r--fs/afs/Kconfig1
-rw-r--r--fs/afs/addr_list.c6
-rw-r--r--fs/afs/afs.h6
-rw-r--r--fs/afs/afs_cm.h6
-rw-r--r--fs/afs/afs_fs.h6
-rw-r--r--fs/afs/afs_vl.h6
-rw-r--r--fs/afs/cache.c6
-rw-r--r--fs/afs/callback.c4
-rw-r--r--fs/afs/cell.c6
-rw-r--r--fs/afs/cmservice.c6
-rw-r--r--fs/afs/dir.c6
-rw-r--r--fs/afs/dir_edit.c6
-rw-r--r--fs/afs/dir_silly.c6
-rw-r--r--fs/afs/dynroot.c6
-rw-r--r--fs/afs/file.c6
-rw-r--r--fs/afs/flock.c6
-rw-r--r--fs/afs/fs_probe.c6
-rw-r--r--fs/afs/fsclient.c6
-rw-r--r--fs/afs/inode.c31
-rw-r--r--fs/afs/internal.h14
-rw-r--r--fs/afs/main.c6
-rw-r--r--fs/afs/misc.c6
-rw-r--r--fs/afs/mntpt.c6
-rw-r--r--fs/afs/proc.c6
-rw-r--r--fs/afs/protocol_yfs.h6
-rw-r--r--fs/afs/rotate.c6
-rw-r--r--fs/afs/rxrpc.c6
-rw-r--r--fs/afs/security.c6
-rw-r--r--fs/afs/server.c6
-rw-r--r--fs/afs/server_list.c6
-rw-r--r--fs/afs/vl_list.c6
-rw-r--r--fs/afs/vl_probe.c6
-rw-r--r--fs/afs/vl_rotate.c6
-rw-r--r--fs/afs/vlclient.c6
-rw-r--r--fs/afs/volume.c7
-rw-r--r--fs/afs/write.c6
-rw-r--r--fs/afs/xattr.c6
-rw-r--r--fs/afs/xdr_fs.h6
-rw-r--r--fs/afs/yfsclient.c6
-rw-r--r--fs/aio.c28
-rw-r--r--fs/anon_inodes.c1
-rw-r--r--fs/autofs/Kconfig1
-rw-r--r--fs/autofs/Makefile1
-rw-r--r--fs/autofs/autofs_i.h5
-rw-r--r--fs/autofs/dev-ioctl.c5
-rw-r--r--fs/autofs/expire.c5
-rw-r--r--fs/autofs/init.c5
-rw-r--r--fs/autofs/inode.c5
-rw-r--r--fs/autofs/root.c5
-rw-r--r--fs/autofs/symlink.c5
-rw-r--r--fs/autofs/waitq.c5
-rw-r--r--fs/befs/Kconfig1
-rw-r--r--fs/befs/Makefile1
-rw-r--r--fs/befs/linuxvfs.c1
-rw-r--r--fs/bfs/Kconfig1
-rw-r--r--fs/bfs/Makefile1
-rw-r--r--fs/bfs/inode.c1
-rw-r--r--fs/binfmt_aout.c1
-rw-r--r--fs/binfmt_elf.c1
-rw-r--r--fs/binfmt_elf_fdpic.c6
-rw-r--r--fs/binfmt_em86.c1
-rw-r--r--fs/binfmt_flat.c23
-rw-r--r--fs/binfmt_misc.c1
-rw-r--r--fs/binfmt_script.c1
-rw-r--r--fs/block_dev.c26
-rw-r--r--fs/btrfs/compression.c1
-rw-r--r--fs/btrfs/dev-replace.c35
-rw-r--r--fs/btrfs/extent-tree.c67
-rw-r--r--fs/btrfs/file.c16
-rw-r--r--fs/btrfs/inode.c14
-rw-r--r--fs/btrfs/ioctl.c2
-rw-r--r--fs/btrfs/props.c30
-rw-r--r--fs/btrfs/qgroup.c8
-rw-r--r--fs/btrfs/reada.c5
-rw-r--r--fs/btrfs/relocation.c27
-rw-r--r--fs/btrfs/root-tree.c4
-rw-r--r--fs/btrfs/send.c52
-rw-r--r--fs/btrfs/sysfs.c7
-rw-r--r--fs/btrfs/tree-checker.c49
-rw-r--r--fs/btrfs/tree-log.c21
-rw-r--r--fs/btrfs/xattr.c6
-rw-r--r--fs/btrfs/zstd.c20
-rw-r--r--fs/buffer.c1
-rw-r--r--fs/cachefiles/Kconfig1
-rw-r--r--fs/cachefiles/bind.c6
-rw-r--r--fs/cachefiles/daemon.c6
-rw-r--r--fs/cachefiles/interface.c6
-rw-r--r--fs/cachefiles/internal.h6
-rw-r--r--fs/cachefiles/key.c6
-rw-r--r--fs/cachefiles/main.c6
-rw-r--r--fs/cachefiles/namei.c6
-rw-r--r--fs/cachefiles/proc.c6
-rw-r--r--fs/cachefiles/rdwr.c6
-rw-r--r--fs/cachefiles/security.c6
-rw-r--r--fs/cachefiles/xattr.c6
-rw-r--r--fs/ceph/Kconfig1
-rw-r--r--fs/ceph/acl.c15
-rw-r--r--fs/ceph/cache.c17
-rw-r--r--fs/ceph/cache.h17
-rw-r--r--fs/ceph/caps.c34
-rw-r--r--fs/ceph/file.c2
-rw-r--r--fs/ceph/inode.c155
-rw-r--r--fs/ceph/mds_client.c31
-rw-r--r--fs/ceph/quota.c9
-rw-r--r--fs/ceph/snap.c16
-rw-r--r--fs/ceph/super.c29
-rw-r--r--fs/ceph/super.h19
-rw-r--r--fs/cifs/Kconfig1
-rw-r--r--fs/cifs/asn1.c13
-rw-r--r--fs/cifs/cifs_debug.c15
-rw-r--r--fs/cifs/cifs_debug.h16
-rw-r--r--fs/cifs/cifs_dfs_ref.c5
-rw-r--r--fs/cifs/cifs_unicode.c15
-rw-r--r--fs/cifs/cifs_unicode.h17
-rw-r--r--fs/cifs/cifs_uniupr.h16
-rw-r--r--fs/cifs/cifsfs.c1
-rw-r--r--fs/cifs/cifsglob.h5
-rw-r--r--fs/cifs/connect.c2
-rw-r--r--fs/cifs/dfs_cache.c4
-rw-r--r--fs/cifs/file.c12
-rw-r--r--fs/cifs/netmisc.c15
-rw-r--r--fs/cifs/nterr.c15
-rw-r--r--fs/cifs/nterr.h14
-rw-r--r--fs/cifs/smb1ops.c14
-rw-r--r--fs/cifs/smb2maperror.c2
-rw-r--r--fs/cifs/smb2ops.c13
-rw-r--r--fs/cifs/smb2pdu.c19
-rw-r--r--fs/cifs/smbdirect.c11
-rw-r--r--fs/cifs/smbdirect.h11
-rw-r--r--fs/cifs/smbencrypt.c14
-rw-r--r--fs/cifs/winucase.c15
-rw-r--r--fs/coda/Kconfig1
-rw-r--r--fs/coda/Makefile1
-rw-r--r--fs/coda/psdev.c6
-rw-r--r--fs/compat.c5
-rw-r--r--fs/compat_binfmt_elf.c5
-rw-r--r--fs/configfs/Kconfig1
-rw-r--r--fs/configfs/Makefile1
-rw-r--r--fs/configfs/configfs_internal.h16
-rw-r--r--fs/configfs/dir.c30
-rw-r--r--fs/configfs/file.c16
-rw-r--r--fs/configfs/inode.c16
-rw-r--r--fs/configfs/item.c16
-rw-r--r--fs/configfs/mount.c16
-rw-r--r--fs/configfs/symlink.c16
-rw-r--r--fs/cramfs/Kconfig1
-rw-r--r--fs/cramfs/Makefile1
-rw-r--r--fs/crypto/Kconfig1
-rw-r--r--fs/crypto/Makefile1
-rw-r--r--fs/crypto/crypto.c1
-rw-r--r--fs/crypto/hooks.c1
-rw-r--r--fs/dax.c10
-rw-r--r--fs/dcache.c1
-rw-r--r--fs/dcookies.c1
-rw-r--r--fs/debugfs/Makefile1
-rw-r--r--fs/devpts/Makefile1
-rw-r--r--fs/devpts/inode.c5
-rw-r--r--fs/direct-io.c1
-rw-r--r--fs/dlm/Kconfig1
-rw-r--r--fs/dlm/ast.c4
-rw-r--r--fs/dlm/ast.h4
-rw-r--r--fs/dlm/config.c4
-rw-r--r--fs/dlm/config.h4
-rw-r--r--fs/dlm/debug_fs.c4
-rw-r--r--fs/dlm/dir.c4
-rw-r--r--fs/dlm/dir.h4
-rw-r--r--fs/dlm/dlm_internal.h4
-rw-r--r--fs/dlm/lock.c4
-rw-r--r--fs/dlm/lock.h4
-rw-r--r--fs/dlm/lockspace.c4
-rw-r--r--fs/dlm/lockspace.h4
-rw-r--r--fs/dlm/lowcomms.c4
-rw-r--r--fs/dlm/lowcomms.h4
-rw-r--r--fs/dlm/lvb_table.h4
-rw-r--r--fs/dlm/main.c4
-rw-r--r--fs/dlm/member.c4
-rw-r--r--fs/dlm/member.h4
-rw-r--r--fs/dlm/memory.c4
-rw-r--r--fs/dlm/memory.h4
-rw-r--r--fs/dlm/midcomms.c4
-rw-r--r--fs/dlm/midcomms.h4
-rw-r--r--fs/dlm/netlink.c5
-rw-r--r--fs/dlm/plock.c5
-rw-r--r--fs/dlm/rcom.c4
-rw-r--r--fs/dlm/rcom.h4
-rw-r--r--fs/dlm/recover.c4
-rw-r--r--fs/dlm/recover.h4
-rw-r--r--fs/dlm/recoverd.c4
-rw-r--r--fs/dlm/recoverd.h4
-rw-r--r--fs/dlm/requestqueue.c4
-rw-r--r--fs/dlm/requestqueue.h4
-rw-r--r--fs/dlm/user.c5
-rw-r--r--fs/dlm/user.h5
-rw-r--r--fs/dlm/util.c4
-rw-r--r--fs/dlm/util.h4
-rw-r--r--fs/ecryptfs/Kconfig1
-rw-r--r--fs/ecryptfs/Makefile1
-rw-r--r--fs/ecryptfs/crypto.c16
-rw-r--r--fs/ecryptfs/debug.c16
-rw-r--r--fs/ecryptfs/dentry.c16
-rw-r--r--fs/ecryptfs/ecryptfs_kernel.h16
-rw-r--r--fs/ecryptfs/file.c16
-rw-r--r--fs/ecryptfs/inode.c16
-rw-r--r--fs/ecryptfs/keystore.c16
-rw-r--r--fs/ecryptfs/kthread.c16
-rw-r--r--fs/ecryptfs/main.c16
-rw-r--r--fs/ecryptfs/messaging.c15
-rw-r--r--fs/ecryptfs/miscdev.c15
-rw-r--r--fs/ecryptfs/mmap.c16
-rw-r--r--fs/ecryptfs/read_write.c16
-rw-r--r--fs/ecryptfs/super.c16
-rw-r--r--fs/efivarfs/Kconfig1
-rw-r--r--fs/efivarfs/Makefile1
-rw-r--r--fs/efivarfs/file.c5
-rw-r--r--fs/efivarfs/inode.c5
-rw-r--r--fs/efivarfs/internal.h5
-rw-r--r--fs/efivarfs/super.c5
-rw-r--r--fs/efs/Kconfig1
-rw-r--r--fs/efs/Makefile1
-rw-r--r--fs/efs/inode.c1
-rw-r--r--fs/eventfd.c1
-rw-r--r--fs/eventpoll.c11
-rw-r--r--fs/exec.c1
-rw-r--r--fs/exportfs/Makefile1
-rw-r--r--fs/exportfs/expfs.c1
-rw-r--r--fs/ext2/Kconfig1
-rw-r--r--fs/ext2/super.c1
-rw-r--r--fs/ext4/Kconfig1
-rw-r--r--fs/ext4/dir.c2
-rw-r--r--fs/ext4/extents.c12
-rw-r--r--fs/ext4/inode.c23
-rw-r--r--fs/f2fs/Kconfig1
-rw-r--r--fs/fat/Kconfig1
-rw-r--r--fs/fat/dir.c1
-rw-r--r--fs/fat/fatent.c2
-rw-r--r--fs/fat/file.c1
-rw-r--r--fs/fat/inode.c1
-rw-r--r--fs/fat/misc.c1
-rw-r--r--fs/fat/namei_msdos.c1
-rw-r--r--fs/fat/namei_vfat.c1
-rw-r--r--fs/fat/nfs.c11
-rw-r--r--fs/file_table.c1
-rw-r--r--fs/freevxfs/Kconfig1
-rw-r--r--fs/freevxfs/Makefile1
-rw-r--r--fs/fs-writeback.c1
-rw-r--r--fs/fs_context.c6
-rw-r--r--fs/fs_parser.c6
-rw-r--r--fs/fs_struct.c1
-rw-r--r--fs/fscache/Kconfig1
-rw-r--r--fs/fscache/cache.c6
-rw-r--r--fs/fscache/cookie.c6
-rw-r--r--fs/fscache/fsdef.c6
-rw-r--r--fs/fscache/histogram.c6
-rw-r--r--fs/fscache/internal.h6
-rw-r--r--fs/fscache/main.c6
-rw-r--r--fs/fscache/netfs.c6
-rw-r--r--fs/fscache/object-list.c6
-rw-r--r--fs/fscache/object.c6
-rw-r--r--fs/fscache/operation.c6
-rw-r--r--fs/fscache/page.c6
-rw-r--r--fs/fscache/proc.c6
-rw-r--r--fs/fscache/stats.c6
-rw-r--r--fs/fsopen.c6
-rw-r--r--fs/fuse/Kconfig1
-rw-r--r--fs/fuse/Makefile1
-rw-r--r--fs/fuse/cuse.c3
-rw-r--r--fs/fuse/dev.c10
-rw-r--r--fs/fuse/file.c43
-rw-r--r--fs/gfs2/Kconfig1
-rw-r--r--fs/gfs2/acl.c5
-rw-r--r--fs/gfs2/acl.h5
-rw-r--r--fs/gfs2/aops.c5
-rw-r--r--fs/gfs2/bmap.c10
-rw-r--r--fs/gfs2/bmap.h5
-rw-r--r--fs/gfs2/dentry.c5
-rw-r--r--fs/gfs2/dir.c5
-rw-r--r--fs/gfs2/dir.h5
-rw-r--r--fs/gfs2/export.c5
-rw-r--r--fs/gfs2/file.c5
-rw-r--r--fs/gfs2/gfs2.h5
-rw-r--r--fs/gfs2/glock.c9
-rw-r--r--fs/gfs2/glock.h5
-rw-r--r--fs/gfs2/glops.c5
-rw-r--r--fs/gfs2/glops.h5
-rw-r--r--fs/gfs2/incore.h7
-rw-r--r--fs/gfs2/inode.c5
-rw-r--r--fs/gfs2/inode.h5
-rw-r--r--fs/gfs2/lock_dlm.c14
-rw-r--r--fs/gfs2/log.c9
-rw-r--r--fs/gfs2/log.h5
-rw-r--r--fs/gfs2/lops.c38
-rw-r--r--fs/gfs2/lops.h5
-rw-r--r--fs/gfs2/main.c6
-rw-r--r--fs/gfs2/meta_io.c5
-rw-r--r--fs/gfs2/meta_io.h5
-rw-r--r--fs/gfs2/ops_fstype.c5
-rw-r--r--fs/gfs2/quota.c5
-rw-r--r--fs/gfs2/quota.h5
-rw-r--r--fs/gfs2/recovery.c5
-rw-r--r--fs/gfs2/recovery.h5
-rw-r--r--fs/gfs2/rgrp.c5
-rw-r--r--fs/gfs2/rgrp.h5
-rw-r--r--fs/gfs2/super.c7
-rw-r--r--fs/gfs2/super.h5
-rw-r--r--fs/gfs2/sys.c5
-rw-r--r--fs/gfs2/sys.h5
-rw-r--r--fs/gfs2/trans.c5
-rw-r--r--fs/gfs2/trans.h5
-rw-r--r--fs/gfs2/util.c5
-rw-r--r--fs/gfs2/util.h5
-rw-r--r--fs/gfs2/xattr.c5
-rw-r--r--fs/gfs2/xattr.h5
-rw-r--r--fs/hfs/Kconfig1
-rw-r--r--fs/hfs/Makefile1
-rw-r--r--fs/hfsplus/Kconfig1
-rw-r--r--fs/hfsplus/super.c1
-rw-r--r--fs/hpfs/Kconfig1
-rw-r--r--fs/hpfs/Makefile1
-rw-r--r--fs/hpfs/super.c1
-rw-r--r--fs/hugetlbfs/Makefile1
-rw-r--r--fs/inode.c3
-rw-r--r--fs/internal.h6
-rw-r--r--fs/io_uring.c18
-rw-r--r--fs/iomap.c12
-rw-r--r--fs/isofs/Kconfig1
-rw-r--r--fs/isofs/compress.c7
-rw-r--r--fs/isofs/inode.c1
-rw-r--r--fs/isofs/zisofs.h7
-rw-r--r--fs/jbd2/Kconfig1
-rw-r--r--fs/jbd2/Makefile1
-rw-r--r--fs/jffs2/Kconfig1
-rw-r--r--fs/jfs/Kconfig1
-rw-r--r--fs/jfs/acl.c15
-rw-r--r--fs/jfs/file.c15
-rw-r--r--fs/jfs/inode.c15
-rw-r--r--fs/jfs/jfs_acl.h15
-rw-r--r--fs/jfs/jfs_btree.h15
-rw-r--r--fs/jfs/jfs_debug.c15
-rw-r--r--fs/jfs/jfs_debug.h15
-rw-r--r--fs/jfs/jfs_dinode.h15
-rw-r--r--fs/jfs/jfs_discard.c15
-rw-r--r--fs/jfs/jfs_discard.h15
-rw-r--r--fs/jfs/jfs_dmap.c15
-rw-r--r--fs/jfs/jfs_dmap.h15
-rw-r--r--fs/jfs/jfs_dtree.c15
-rw-r--r--fs/jfs/jfs_dtree.h15
-rw-r--r--fs/jfs/jfs_extent.c15
-rw-r--r--fs/jfs/jfs_extent.h15
-rw-r--r--fs/jfs/jfs_filsys.h15
-rw-r--r--fs/jfs/jfs_imap.c15
-rw-r--r--fs/jfs/jfs_imap.h15
-rw-r--r--fs/jfs/jfs_incore.h15
-rw-r--r--fs/jfs/jfs_inode.c15
-rw-r--r--fs/jfs/jfs_inode.h15
-rw-r--r--fs/jfs/jfs_lock.h15
-rw-r--r--fs/jfs/jfs_logmgr.c15
-rw-r--r--fs/jfs/jfs_logmgr.h15
-rw-r--r--fs/jfs/jfs_metapage.c15
-rw-r--r--fs/jfs/jfs_metapage.h15
-rw-r--r--fs/jfs/jfs_mount.c15
-rw-r--r--fs/jfs/jfs_superblock.h15
-rw-r--r--fs/jfs/jfs_txnmgr.c15
-rw-r--r--fs/jfs/jfs_txnmgr.h15
-rw-r--r--fs/jfs/jfs_types.h15
-rw-r--r--fs/jfs/jfs_umount.c15
-rw-r--r--fs/jfs/jfs_unicode.c15
-rw-r--r--fs/jfs/jfs_unicode.h15
-rw-r--r--fs/jfs/jfs_uniupr.c15
-rw-r--r--fs/jfs/jfs_xattr.h15
-rw-r--r--fs/jfs/jfs_xtree.c15
-rw-r--r--fs/jfs/jfs_xtree.h15
-rw-r--r--fs/jfs/namei.c15
-rw-r--r--fs/jfs/resize.c15
-rw-r--r--fs/jfs/super.c15
-rw-r--r--fs/jfs/symlink.c15
-rw-r--r--fs/jfs/xattr.c15
-rw-r--r--fs/kernfs/Kconfig1
-rw-r--r--fs/kernfs/Makefile1
-rw-r--r--fs/kernfs/dir.c3
-rw-r--r--fs/kernfs/file.c3
-rw-r--r--fs/kernfs/inode.c3
-rw-r--r--fs/kernfs/kernfs-internal.h3
-rw-r--r--fs/kernfs/mount.c3
-rw-r--r--fs/kernfs/symlink.c3
-rw-r--r--fs/libfs.c1
-rw-r--r--fs/lockd/clntlock.c1
-rw-r--r--fs/lockd/clntproc.c1
-rw-r--r--fs/lockd/svc.c1
-rw-r--r--fs/lockd/svcsubs.c1
-rw-r--r--fs/lockd/xdr.c4
-rw-r--r--fs/lockd/xdr4.c4
-rw-r--r--fs/locks.c1
-rw-r--r--fs/mbcache.c1
-rw-r--r--fs/minix/Kconfig1
-rw-r--r--fs/minix/Makefile1
-rw-r--r--fs/minix/inode.c1
-rw-r--r--fs/namespace.c4
-rw-r--r--fs/nfs/Kconfig1
-rw-r--r--fs/nfs/blocklayout/Makefile1
-rw-r--r--fs/nfs/client.c6
-rw-r--r--fs/nfs/delegation.c1
-rw-r--r--fs/nfs/dir.c1
-rw-r--r--fs/nfs/direct.c1
-rw-r--r--fs/nfs/file.c1
-rw-r--r--fs/nfs/filelayout/Makefile1
-rw-r--r--fs/nfs/flexfilelayout/Makefile1
-rw-r--r--fs/nfs/flexfilelayout/flexfilelayout.c1
-rw-r--r--fs/nfs/flexfilelayout/flexfilelayoutdev.c2
-rw-r--r--fs/nfs/fscache-index.c6
-rw-r--r--fs/nfs/fscache.c6
-rw-r--r--fs/nfs/fscache.h6
-rw-r--r--fs/nfs/getroot.c6
-rw-r--r--fs/nfs/inode.c1
-rw-r--r--fs/nfs/namespace.c1
-rw-r--r--fs/nfs/nfs2super.c1
-rw-r--r--fs/nfs/nfs3client.c1
-rw-r--r--fs/nfs/nfs3super.c1
-rw-r--r--fs/nfs/nfs4client.c1
-rw-r--r--fs/nfs/nfs4proc.c52
-rw-r--r--fs/nfs/nfs4session.c1
-rw-r--r--fs/nfs/nfs4super.c1
-rw-r--r--fs/nfs/pagelist.c1
-rw-r--r--fs/nfs/pnfs_nfs.c1
-rw-r--r--fs/nfs/read.c1
-rw-r--r--fs/nfs/super.c1
-rw-r--r--fs/nfs/write.c1
-rw-r--r--fs/nfs_common/Makefile1
-rw-r--r--fs/nfs_common/grace.c1
-rw-r--r--fs/nfs_common/nfsacl.c1
-rw-r--r--fs/nfsd/Kconfig1
-rw-r--r--fs/nfsd/netns.h15
-rw-r--r--fs/nfsd/nfsctl.c1
-rw-r--r--fs/nilfs2/Kconfig1
-rw-r--r--fs/nls/Kconfig1
-rw-r--r--fs/no-block.c6
-rw-r--r--fs/notify/Kconfig1
-rw-r--r--fs/notify/dnotify/Kconfig1
-rw-r--r--fs/notify/dnotify/Makefile1
-rw-r--r--fs/notify/dnotify/dnotify.c11
-rw-r--r--fs/notify/fanotify/Kconfig1
-rw-r--r--fs/notify/fanotify/Makefile1
-rw-r--r--fs/notify/fanotify/fanotify.c4
-rw-r--r--fs/notify/fsnotify.c15
-rw-r--r--fs/notify/group.c15
-rw-r--r--fs/notify/inotify/Kconfig1
-rw-r--r--fs/notify/inotify/Makefile1
-rw-r--r--fs/notify/inotify/inotify_fsnotify.c11
-rw-r--r--fs/notify/inotify/inotify_user.c11
-rw-r--r--fs/notify/mark.c29
-rw-r--r--fs/notify/notification.c15
-rw-r--r--fs/ntfs/Kconfig1
-rw-r--r--fs/ntfs/aops.c16
-rw-r--r--fs/ntfs/aops.h16
-rw-r--r--fs/ntfs/attrib.c16
-rw-r--r--fs/ntfs/attrib.h16
-rw-r--r--fs/ntfs/bitmap.c16
-rw-r--r--fs/ntfs/bitmap.h16
-rw-r--r--fs/ntfs/collate.c16
-rw-r--r--fs/ntfs/collate.h16
-rw-r--r--fs/ntfs/compress.c16
-rw-r--r--fs/ntfs/debug.c16
-rw-r--r--fs/ntfs/debug.h16
-rw-r--r--fs/ntfs/dir.c16
-rw-r--r--fs/ntfs/dir.h16
-rw-r--r--fs/ntfs/endian.h16
-rw-r--r--fs/ntfs/file.c16
-rw-r--r--fs/ntfs/index.c16
-rw-r--r--fs/ntfs/index.h16
-rw-r--r--fs/ntfs/inode.c16
-rw-r--r--fs/ntfs/inode.h16
-rw-r--r--fs/ntfs/layout.h16
-rw-r--r--fs/ntfs/lcnalloc.c16
-rw-r--r--fs/ntfs/lcnalloc.h16
-rw-r--r--fs/ntfs/logfile.c16
-rw-r--r--fs/ntfs/logfile.h16
-rw-r--r--fs/ntfs/malloc.h16
-rw-r--r--fs/ntfs/mft.c16
-rw-r--r--fs/ntfs/mft.h16
-rw-r--r--fs/ntfs/mst.c16
-rw-r--r--fs/ntfs/namei.c16
-rw-r--r--fs/ntfs/ntfs.h16
-rw-r--r--fs/ntfs/quota.c16
-rw-r--r--fs/ntfs/quota.h16
-rw-r--r--fs/ntfs/runlist.c16
-rw-r--r--fs/ntfs/runlist.h16
-rw-r--r--fs/ntfs/super.c16
-rw-r--r--fs/ntfs/sysctl.c16
-rw-r--r--fs/ntfs/sysctl.h16
-rw-r--r--fs/ntfs/time.h16
-rw-r--r--fs/ntfs/types.h16
-rw-r--r--fs/ntfs/unistr.c16
-rw-r--r--fs/ntfs/upcase.c16
-rw-r--r--fs/ntfs/usnjrnl.c16
-rw-r--r--fs/ntfs/usnjrnl.h16
-rw-r--r--fs/ntfs/volume.h16
-rw-r--r--fs/ocfs2/Kconfig1
-rw-r--r--fs/ocfs2/acl.c10
-rw-r--r--fs/ocfs2/acl.h10
-rw-r--r--fs/ocfs2/alloc.c16
-rw-r--r--fs/ocfs2/alloc.h16
-rw-r--r--fs/ocfs2/aops.c16
-rw-r--r--fs/ocfs2/aops.h16
-rw-r--r--fs/ocfs2/blockcheck.c10
-rw-r--r--fs/ocfs2/blockcheck.h10
-rw-r--r--fs/ocfs2/buffer_head_io.c16
-rw-r--r--fs/ocfs2/buffer_head_io.h16
-rw-r--r--fs/ocfs2/cluster/Makefile1
-rw-r--r--fs/ocfs2/cluster/heartbeat.c16
-rw-r--r--fs/ocfs2/cluster/heartbeat.h17
-rw-r--r--fs/ocfs2/cluster/masklog.c16
-rw-r--r--fs/ocfs2/cluster/masklog.h16
-rw-r--r--fs/ocfs2/cluster/netdebug.c17
-rw-r--r--fs/ocfs2/cluster/nodemanager.c16
-rw-r--r--fs/ocfs2/cluster/nodemanager.h17
-rw-r--r--fs/ocfs2/cluster/ocfs2_heartbeat.h16
-rw-r--r--fs/ocfs2/cluster/ocfs2_nodemanager.h17
-rw-r--r--fs/ocfs2/cluster/quorum.c16
-rw-r--r--fs/ocfs2/cluster/quorum.h17
-rw-r--r--fs/ocfs2/cluster/sys.c17
-rw-r--r--fs/ocfs2/cluster/sys.h17
-rw-r--r--fs/ocfs2/cluster/tcp.c16
-rw-r--r--fs/ocfs2/cluster/tcp.h17
-rw-r--r--fs/ocfs2/cluster/tcp_internal.h16
-rw-r--r--fs/ocfs2/dcache.c28
-rw-r--r--fs/ocfs2/dcache.h16
-rw-r--r--fs/ocfs2/dir.c16
-rw-r--r--fs/ocfs2/dir.h16
-rw-r--r--fs/ocfs2/dlm/Makefile1
-rw-r--r--fs/ocfs2/dlm/dlmapi.h17
-rw-r--r--fs/ocfs2/dlm/dlmast.c17
-rw-r--r--fs/ocfs2/dlm/dlmcommon.h17
-rw-r--r--fs/ocfs2/dlm/dlmconvert.c17
-rw-r--r--fs/ocfs2/dlm/dlmconvert.h17
-rw-r--r--fs/ocfs2/dlm/dlmdebug.c17
-rw-r--r--fs/ocfs2/dlm/dlmdebug.h17
-rw-r--r--fs/ocfs2/dlm/dlmdomain.c17
-rw-r--r--fs/ocfs2/dlm/dlmdomain.h17
-rw-r--r--fs/ocfs2/dlm/dlmlock.c17
-rw-r--r--fs/ocfs2/dlm/dlmmaster.c17
-rw-r--r--fs/ocfs2/dlm/dlmrecovery.c17
-rw-r--r--fs/ocfs2/dlm/dlmthread.c17
-rw-r--r--fs/ocfs2/dlm/dlmunlock.c17
-rw-r--r--fs/ocfs2/dlmfs/Makefile1
-rw-r--r--fs/ocfs2/dlmfs/dlmfs.c16
-rw-r--r--fs/ocfs2/dlmfs/userdlm.c16
-rw-r--r--fs/ocfs2/dlmfs/userdlm.h16
-rw-r--r--fs/ocfs2/dlmglue.c16
-rw-r--r--fs/ocfs2/dlmglue.h16
-rw-r--r--fs/ocfs2/export.c16
-rw-r--r--fs/ocfs2/export.h16
-rw-r--r--fs/ocfs2/extent_map.c15
-rw-r--r--fs/ocfs2/extent_map.h15
-rw-r--r--fs/ocfs2/file.c16
-rw-r--r--fs/ocfs2/file.h16
-rw-r--r--fs/ocfs2/filecheck.c11
-rw-r--r--fs/ocfs2/filecheck.h10
-rw-r--r--fs/ocfs2/heartbeat.c16
-rw-r--r--fs/ocfs2/heartbeat.h16
-rw-r--r--fs/ocfs2/inode.c16
-rw-r--r--fs/ocfs2/inode.h16
-rw-r--r--fs/ocfs2/journal.c16
-rw-r--r--fs/ocfs2/journal.h16
-rw-r--r--fs/ocfs2/localalloc.c16
-rw-r--r--fs/ocfs2/localalloc.h16
-rw-r--r--fs/ocfs2/locks.c16
-rw-r--r--fs/ocfs2/locks.h16
-rw-r--r--fs/ocfs2/mmap.c16
-rw-r--r--fs/ocfs2/move_extents.c10
-rw-r--r--fs/ocfs2/move_extents.h10
-rw-r--r--fs/ocfs2/namei.c16
-rw-r--r--fs/ocfs2/namei.h16
-rw-r--r--fs/ocfs2/ocfs1_fs_compat.h15
-rw-r--r--fs/ocfs2/ocfs2.h16
-rw-r--r--fs/ocfs2/ocfs2_fs.h15
-rw-r--r--fs/ocfs2/ocfs2_ioctl.h10
-rw-r--r--fs/ocfs2/ocfs2_lockid.h16
-rw-r--r--fs/ocfs2/ocfs2_lockingver.h10
-rw-r--r--fs/ocfs2/refcounttree.c10
-rw-r--r--fs/ocfs2/refcounttree.h10
-rw-r--r--fs/ocfs2/reservations.c10
-rw-r--r--fs/ocfs2/reservations.h10
-rw-r--r--fs/ocfs2/resize.c16
-rw-r--r--fs/ocfs2/resize.h16
-rw-r--r--fs/ocfs2/slot_map.c18
-rw-r--r--fs/ocfs2/slot_map.h16
-rw-r--r--fs/ocfs2/stack_o2cb.c10
-rw-r--r--fs/ocfs2/stack_user.c10
-rw-r--r--fs/ocfs2/stackglue.c10
-rw-r--r--fs/ocfs2/stackglue.h10
-rw-r--r--fs/ocfs2/suballoc.c16
-rw-r--r--fs/ocfs2/suballoc.h16
-rw-r--r--fs/ocfs2/super.c16
-rw-r--r--fs/ocfs2/super.h16
-rw-r--r--fs/ocfs2/symlink.h16
-rw-r--r--fs/ocfs2/sysfile.c16
-rw-r--r--fs/ocfs2/sysfile.h16
-rw-r--r--fs/ocfs2/uptodate.c16
-rw-r--r--fs/ocfs2/uptodate.h16
-rw-r--r--fs/ocfs2/xattr.c10
-rw-r--r--fs/ocfs2/xattr.h10
-rw-r--r--fs/omfs/Kconfig1
-rw-r--r--fs/omfs/Makefile1
-rw-r--r--fs/omfs/dir.c2
-rw-r--r--fs/omfs/file.c2
-rw-r--r--fs/omfs/inode.c2
-rw-r--r--fs/open.c1
-rw-r--r--fs/openpromfs/Makefile1
-rw-r--r--fs/openpromfs/inode.c1
-rw-r--r--fs/orangefs/Kconfig1
-rw-r--r--fs/orangefs/orangefs-mod.c1
-rw-r--r--fs/overlayfs/Kconfig1
-rw-r--r--fs/overlayfs/Makefile1
-rw-r--r--fs/overlayfs/copy_up.c7
-rw-r--r--fs/overlayfs/dir.c7
-rw-r--r--fs/overlayfs/export.c5
-rw-r--r--fs/overlayfs/file.c101
-rw-r--r--fs/overlayfs/inode.c65
-rw-r--r--fs/overlayfs/namei.c13
-rw-r--r--fs/overlayfs/overlayfs.h8
-rw-r--r--fs/overlayfs/ovl_entry.h11
-rw-r--r--fs/overlayfs/readdir.c5
-rw-r--r--fs/overlayfs/super.c178
-rw-r--r--fs/overlayfs/util.c17
-rw-r--r--fs/pnode.c4
-rw-r--r--fs/pnode.h3
-rw-r--r--fs/posix_acl.c1
-rw-r--r--fs/proc/Kconfig1
-rw-r--r--fs/proc/array.c2
-rw-r--r--fs/proc/base.c3
-rw-r--r--fs/proc/consoles.c3
-rw-r--r--fs/proc/generic.c1
-rw-r--r--fs/proc/internal.h6
-rw-r--r--fs/proc/nommu.c6
-rw-r--r--fs/proc/proc_net.c1
-rw-r--r--fs/proc/vmcore.c1
-rw-r--r--fs/pstore/Kconfig1
-rw-r--r--fs/pstore/ftrace.c10
-rw-r--r--fs/pstore/inode.c14
-rw-r--r--fs/pstore/platform.c21
-rw-r--r--fs/pstore/pmsg.c10
-rw-r--r--fs/pstore/ram.c52
-rw-r--r--fs/pstore/ram_core.c11
-rw-r--r--fs/qnx4/Kconfig1
-rw-r--r--fs/qnx4/Makefile1
-rw-r--r--fs/qnx4/inode.c1
-rw-r--r--fs/qnx6/Kconfig1
-rw-r--r--fs/qnx6/Makefile1
-rw-r--r--fs/qnx6/inode.c1
-rw-r--r--fs/quota/Kconfig1
-rw-r--r--fs/quota/dquot.c4
-rw-r--r--fs/quota/quota_tree.c1
-rw-r--r--fs/quota/quota_v1.c1
-rw-r--r--fs/quota/quota_v2.c1
-rw-r--r--fs/ramfs/Makefile1
-rw-r--r--fs/ramfs/file-nommu.c6
-rw-r--r--fs/ramfs/internal.h6
-rw-r--r--fs/reiserfs/Kconfig1
-rw-r--r--fs/romfs/Kconfig1
-rw-r--r--fs/romfs/internal.h6
-rw-r--r--fs/romfs/mmap-nommu.c6
-rw-r--r--fs/romfs/storage.c6
-rw-r--r--fs/select.c18
-rw-r--r--fs/splice.c1
-rw-r--r--fs/squashfs/Kconfig1
-rw-r--r--fs/squashfs/block.c15
-rw-r--r--fs/squashfs/cache.c15
-rw-r--r--fs/squashfs/decompressor.c15
-rw-r--r--fs/squashfs/decompressor.h15
-rw-r--r--fs/squashfs/decompressor_multi.c4
-rw-r--r--fs/squashfs/decompressor_multi_percpu.c4
-rw-r--r--fs/squashfs/decompressor_single.c4
-rw-r--r--fs/squashfs/dir.c15
-rw-r--r--fs/squashfs/export.c15
-rw-r--r--fs/squashfs/file.c15
-rw-r--r--fs/squashfs/file_cache.c4
-rw-r--r--fs/squashfs/file_direct.c4
-rw-r--r--fs/squashfs/fragment.c15
-rw-r--r--fs/squashfs/id.c15
-rw-r--r--fs/squashfs/inode.c15
-rw-r--r--fs/squashfs/lz4_wrapper.c4
-rw-r--r--fs/squashfs/lzo_wrapper.c15
-rw-r--r--fs/squashfs/namei.c15
-rw-r--r--fs/squashfs/page_actor.c4
-rw-r--r--fs/squashfs/page_actor.h4
-rw-r--r--fs/squashfs/squashfs.h15
-rw-r--r--fs/squashfs/squashfs_fs.h15
-rw-r--r--fs/squashfs/squashfs_fs_i.h15
-rw-r--r--fs/squashfs/squashfs_fs_sb.h15
-rw-r--r--fs/squashfs/super.c15
-rw-r--r--fs/squashfs/symlink.c15
-rw-r--r--fs/squashfs/xattr.c15
-rw-r--r--fs/squashfs/xattr.h15
-rw-r--r--fs/squashfs/xattr_id.c15
-rw-r--r--fs/squashfs/xz_wrapper.c15
-rw-r--r--fs/squashfs/zlib_wrapper.c15
-rw-r--r--fs/squashfs/zstd_wrapper.c11
-rw-r--r--fs/stack.c1
-rw-r--r--fs/sysfs/Kconfig1
-rw-r--r--fs/sysfs/Makefile1
-rw-r--r--fs/sysv/Kconfig1
-rw-r--r--fs/sysv/Makefile1
-rw-r--r--fs/sysv/super.c1
-rw-r--r--fs/tracefs/Makefile1
-rw-r--r--fs/tracefs/inode.c6
-rw-r--r--fs/ubifs/Kconfig1
-rw-r--r--fs/ubifs/budget.c14
-rw-r--r--fs/ubifs/commit.c14
-rw-r--r--fs/ubifs/compress.c14
-rw-r--r--fs/ubifs/debug.c14
-rw-r--r--fs/ubifs/debug.h14
-rw-r--r--fs/ubifs/dir.c14
-rw-r--r--fs/ubifs/file.c14
-rw-r--r--fs/ubifs/find.c14
-rw-r--r--fs/ubifs/gc.c14
-rw-r--r--fs/ubifs/io.c14
-rw-r--r--fs/ubifs/ioctl.c14
-rw-r--r--fs/ubifs/journal.c14
-rw-r--r--fs/ubifs/key.h14
-rw-r--r--fs/ubifs/log.c14
-rw-r--r--fs/ubifs/lprops.c14
-rw-r--r--fs/ubifs/lpt.c14
-rw-r--r--fs/ubifs/lpt_commit.c14
-rw-r--r--fs/ubifs/master.c14
-rw-r--r--fs/ubifs/misc.h14
-rw-r--r--fs/ubifs/orphan.c14
-rw-r--r--fs/ubifs/recovery.c14
-rw-r--r--fs/ubifs/replay.c14
-rw-r--r--fs/ubifs/sb.c14
-rw-r--r--fs/ubifs/scan.c14
-rw-r--r--fs/ubifs/shrinker.c14
-rw-r--r--fs/ubifs/super.c14
-rw-r--r--fs/ubifs/tnc.c14
-rw-r--r--fs/ubifs/tnc_commit.c14
-rw-r--r--fs/ubifs/tnc_misc.c14
-rw-r--r--fs/ubifs/ubifs-media.h14
-rw-r--r--fs/ubifs/ubifs.h14
-rw-r--r--fs/ubifs/xattr.c14
-rw-r--r--fs/udf/Kconfig1
-rw-r--r--fs/udf/Makefile1
-rw-r--r--fs/ufs/Kconfig1
-rw-r--r--fs/ufs/Makefile1
-rw-r--r--fs/ufs/super.c1
-rw-r--r--fs/unicode/Kconfig1
-rw-r--r--fs/unicode/utf8-norm.c11
-rw-r--r--fs/unicode/utf8-selftest.c10
-rw-r--r--fs/unicode/utf8n.h11
-rw-r--r--fs/userfaultfd.c4
-rw-r--r--fs/xattr.c1
-rw-r--r--fs/xfs/Kconfig1
-rw-r--r--fs/xfs/libxfs/xfs_ialloc_btree.c9
-rw-r--r--fs/xfs/libxfs/xfs_refcount_btree.c9
-rw-r--r--fs/xfs/libxfs/xfs_rmap_btree.c9
-rw-r--r--fs/xfs/scrub/ialloc.c3
-rw-r--r--fs/xfs/xfs_aops.c11
-rw-r--r--fs/xfs/xfs_log.c11
786 files changed, 1874 insertions, 6007 deletions
diff --git a/fs/9p/Kconfig b/fs/9p/Kconfig
index 11045d8e356a..ac2ec4543fe1 100644
--- a/fs/9p/Kconfig
+++ b/fs/9p/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config 9P_FS 2config 9P_FS
2 tristate "Plan 9 Resource Sharing Support (9P2000)" 3 tristate "Plan 9 Resource Sharing Support (9P2000)"
3 depends on INET && NET_9P 4 depends on INET && NET_9P
diff --git a/fs/9p/cache.c b/fs/9p/cache.c
index 9eb34701a566..995e332eee5c 100644
--- a/fs/9p/cache.c
+++ b/fs/9p/cache.c
@@ -1,23 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * V9FS cache definitions. 3 * V9FS cache definitions.
3 * 4 *
4 * Copyright (C) 2009 by Abhishek Kulkarni <adkulkar@umail.iu.edu> 5 * Copyright (C) 2009 by Abhishek Kulkarni <adkulkar@umail.iu.edu>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2
8 * as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to:
17 * Free Software Foundation
18 * 51 Franklin Street, Fifth Floor
19 * Boston, MA 02111-1301 USA
20 *
21 */ 6 */
22 7
23#include <linux/jiffies.h> 8#include <linux/jiffies.h>
diff --git a/fs/9p/cache.h b/fs/9p/cache.h
index 247e47e54bcc..00f107af443e 100644
--- a/fs/9p/cache.h
+++ b/fs/9p/cache.h
@@ -1,23 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * V9FS cache definitions. 3 * V9FS cache definitions.
3 * 4 *
4 * Copyright (C) 2009 by Abhishek Kulkarni <adkulkar@umail.iu.edu> 5 * Copyright (C) 2009 by Abhishek Kulkarni <adkulkar@umail.iu.edu>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2
8 * as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to:
17 * Free Software Foundation
18 * 51 Franklin Street, Fifth Floor
19 * Boston, MA 02111-1301 USA
20 *
21 */ 6 */
22 7
23#ifndef _9P_CACHE_H 8#ifndef _9P_CACHE_H
diff --git a/fs/9p/fid.c b/fs/9p/fid.c
index a9ef46f02354..3d681a2c2731 100644
--- a/fs/9p/fid.c
+++ b/fs/9p/fid.c
@@ -1,24 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * V9FS FID Management 3 * V9FS FID Management
3 * 4 *
4 * Copyright (C) 2007 by Latchesar Ionkov <lucho@ionkov.net> 5 * Copyright (C) 2007 by Latchesar Ionkov <lucho@ionkov.net>
5 * Copyright (C) 2005, 2006 by Eric Van Hensbergen <ericvh@gmail.com> 6 * Copyright (C) 2005, 2006 by Eric Van Hensbergen <ericvh@gmail.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2
9 * as published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to:
18 * Free Software Foundation
19 * 51 Franklin Street, Fifth Floor
20 * Boston, MA 02111-1301 USA
21 *
22 */ 7 */
23 8
24#include <linux/module.h> 9#include <linux/module.h>
diff --git a/fs/9p/fid.h b/fs/9p/fid.h
index 4491bcaf42b8..928b1093f511 100644
--- a/fs/9p/fid.h
+++ b/fs/9p/fid.h
@@ -1,23 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * V9FS FID Management 3 * V9FS FID Management
3 * 4 *
4 * Copyright (C) 2005 by Eric Van Hensbergen <ericvh@gmail.com> 5 * Copyright (C) 2005 by Eric Van Hensbergen <ericvh@gmail.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2
8 * as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to:
17 * Free Software Foundation
18 * 51 Franklin Street, Fifth Floor
19 * Boston, MA 02111-1301 USA
20 *
21 */ 6 */
22#ifndef FS_9P_FID_H 7#ifndef FS_9P_FID_H
23#define FS_9P_FID_H 8#define FS_9P_FID_H
diff --git a/fs/9p/v9fs.c b/fs/9p/v9fs.c
index 619128b55837..15a99f9c7253 100644
--- a/fs/9p/v9fs.c
+++ b/fs/9p/v9fs.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/9p/v9fs.c 3 * linux/fs/9p/v9fs.c
3 * 4 *
@@ -5,22 +6,6 @@
5 * 6 *
6 * Copyright (C) 2004-2008 by Eric Van Hensbergen <ericvh@gmail.com> 7 * Copyright (C) 2004-2008 by Eric Van Hensbergen <ericvh@gmail.com>
7 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov> 8 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2
11 * as published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to:
20 * Free Software Foundation
21 * 51 Franklin Street, Fifth Floor
22 * Boston, MA 02111-1301 USA
23 *
24 */ 9 */
25 10
26#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 11#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/fs/9p/v9fs.h b/fs/9p/v9fs.h
index 129e5243a6bf..7b763776306e 100644
--- a/fs/9p/v9fs.h
+++ b/fs/9p/v9fs.h
@@ -1,24 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * V9FS definitions. 3 * V9FS definitions.
3 * 4 *
4 * Copyright (C) 2004-2008 by Eric Van Hensbergen <ericvh@gmail.com> 5 * Copyright (C) 2004-2008 by Eric Van Hensbergen <ericvh@gmail.com>
5 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov> 6 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2
9 * as published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to:
18 * Free Software Foundation
19 * 51 Franklin Street, Fifth Floor
20 * Boston, MA 02111-1301 USA
21 *
22 */ 7 */
23#ifndef FS_9P_V9FS_H 8#ifndef FS_9P_V9FS_H
24#define FS_9P_V9FS_H 9#define FS_9P_V9FS_H
diff --git a/fs/9p/v9fs_vfs.h b/fs/9p/v9fs_vfs.h
index 60cd4ba04afc..fd2a2b040250 100644
--- a/fs/9p/v9fs_vfs.h
+++ b/fs/9p/v9fs_vfs.h
@@ -1,24 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * V9FS VFS extensions. 3 * V9FS VFS extensions.
3 * 4 *
4 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com> 5 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com>
5 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov> 6 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2
9 * as published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to:
18 * Free Software Foundation
19 * 51 Franklin Street, Fifth Floor
20 * Boston, MA 02111-1301 USA
21 *
22 */ 7 */
23#ifndef FS_9P_V9FS_VFS_H 8#ifndef FS_9P_V9FS_VFS_H
24#define FS_9P_V9FS_VFS_H 9#define FS_9P_V9FS_VFS_H
diff --git a/fs/9p/vfs_addr.c b/fs/9p/vfs_addr.c
index 0bcbcc20f769..bc57ae9e2963 100644
--- a/fs/9p/vfs_addr.c
+++ b/fs/9p/vfs_addr.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/9p/vfs_addr.c 3 * linux/fs/9p/vfs_addr.c
3 * 4 *
@@ -5,22 +6,6 @@
5 * 6 *
6 * Copyright (C) 2005 by Eric Van Hensbergen <ericvh@gmail.com> 7 * Copyright (C) 2005 by Eric Van Hensbergen <ericvh@gmail.com>
7 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov> 8 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2
11 * as published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to:
20 * Free Software Foundation
21 * 51 Franklin Street, Fifth Floor
22 * Boston, MA 02111-1301 USA
23 *
24 */ 9 */
25 10
26#include <linux/module.h> 11#include <linux/module.h>
diff --git a/fs/9p/vfs_dentry.c b/fs/9p/vfs_dentry.c
index bd456c668d39..7d6f69aefd45 100644
--- a/fs/9p/vfs_dentry.c
+++ b/fs/9p/vfs_dentry.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/9p/vfs_dentry.c 3 * linux/fs/9p/vfs_dentry.c
3 * 4 *
@@ -5,22 +6,6 @@
5 * 6 *
6 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com> 7 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com>
7 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov> 8 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2
11 * as published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to:
20 * Free Software Foundation
21 * 51 Franklin Street, Fifth Floor
22 * Boston, MA 02111-1301 USA
23 *
24 */ 9 */
25 10
26#include <linux/module.h> 11#include <linux/module.h>
diff --git a/fs/9p/vfs_dir.c b/fs/9p/vfs_dir.c
index 00745147329d..674d22bf4f6f 100644
--- a/fs/9p/vfs_dir.c
+++ b/fs/9p/vfs_dir.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/9p/vfs_dir.c 3 * linux/fs/9p/vfs_dir.c
3 * 4 *
@@ -5,22 +6,6 @@
5 * 6 *
6 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com> 7 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com>
7 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov> 8 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2
11 * as published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to:
20 * Free Software Foundation
21 * 51 Franklin Street, Fifth Floor
22 * Boston, MA 02111-1301 USA
23 *
24 */ 9 */
25 10
26#include <linux/module.h> 11#include <linux/module.h>
diff --git a/fs/9p/vfs_file.c b/fs/9p/vfs_file.c
index 9a1125305d84..4cc966a31cb3 100644
--- a/fs/9p/vfs_file.c
+++ b/fs/9p/vfs_file.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/9p/vfs_file.c 3 * linux/fs/9p/vfs_file.c
3 * 4 *
@@ -5,22 +6,6 @@
5 * 6 *
6 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com> 7 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com>
7 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov> 8 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2
11 * as published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to:
20 * Free Software Foundation
21 * 51 Franklin Street, Fifth Floor
22 * Boston, MA 02111-1301 USA
23 *
24 */ 9 */
25 10
26#include <linux/module.h> 11#include <linux/module.h>
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
index 24050e866e64..b82423a72f68 100644
--- a/fs/9p/vfs_inode.c
+++ b/fs/9p/vfs_inode.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/9p/vfs_inode.c 3 * linux/fs/9p/vfs_inode.c
3 * 4 *
@@ -5,22 +6,6 @@
5 * 6 *
6 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com> 7 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com>
7 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov> 8 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2
11 * as published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to:
20 * Free Software Foundation
21 * 51 Franklin Street, Fifth Floor
22 * Boston, MA 02111-1301 USA
23 *
24 */ 9 */
25 10
26#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 11#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/fs/9p/vfs_inode_dotl.c b/fs/9p/vfs_inode_dotl.c
index a950a927a626..60328b21c5fb 100644
--- a/fs/9p/vfs_inode_dotl.c
+++ b/fs/9p/vfs_inode_dotl.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/9p/vfs_inode_dotl.c 3 * linux/fs/9p/vfs_inode_dotl.c
3 * 4 *
@@ -5,22 +6,6 @@
5 * 6 *
6 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com> 7 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com>
7 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov> 8 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2
11 * as published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to:
20 * Free Software Foundation
21 * 51 Franklin Street, Fifth Floor
22 * Boston, MA 02111-1301 USA
23 *
24 */ 9 */
25 10
26#include <linux/module.h> 11#include <linux/module.h>
diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c
index 67d1b965adcd..08112fbcaece 100644
--- a/fs/9p/vfs_super.c
+++ b/fs/9p/vfs_super.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/9p/vfs_super.c 3 * linux/fs/9p/vfs_super.c
3 * 4 *
@@ -6,22 +7,6 @@
6 * 7 *
7 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com> 8 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com>
8 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov> 9 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2
12 * as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to:
21 * Free Software Foundation
22 * 51 Franklin Street, Fifth Floor
23 * Boston, MA 02111-1301 USA
24 *
25 */ 10 */
26 11
27#include <linux/kernel.h> 12#include <linux/kernel.h>
diff --git a/fs/Kconfig b/fs/Kconfig
index cbbffc8b9ef5..f1046cf6ad85 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# File system configuration 3# File system configuration
3# 4#
diff --git a/fs/Kconfig.binfmt b/fs/Kconfig.binfmt
index b795f8da81f3..f87ddd1b6d72 100644
--- a/fs/Kconfig.binfmt
+++ b/fs/Kconfig.binfmt
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1 2
2menu "Executable file formats" 3menu "Executable file formats"
3 4
diff --git a/fs/adfs/Kconfig b/fs/adfs/Kconfig
index c5a7787dd5e9..df4650dccf68 100644
--- a/fs/adfs/Kconfig
+++ b/fs/adfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config ADFS_FS 2config ADFS_FS
2 tristate "ADFS file system support" 3 tristate "ADFS file system support"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/adfs/Makefile b/fs/adfs/Makefile
index 9b2d71a9a35c..cf7de6ece659 100644
--- a/fs/adfs/Makefile
+++ b/fs/adfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the linux adfs filesystem routines. 3# Makefile for the linux adfs filesystem routines.
3# 4#
diff --git a/fs/adfs/adfs.h b/fs/adfs/adfs.h
index c76db75f02aa..804c6a77c5db 100644
--- a/fs/adfs/adfs.h
+++ b/fs/adfs/adfs.h
@@ -113,19 +113,6 @@ struct object_info {
113 __u16 filetype; 113 __u16 filetype;
114}; 114};
115 115
116/* RISC OS 12-bit filetype converts to ,xyz hex filename suffix */
117static inline int append_filetype_suffix(char *buf, __u16 filetype)
118{
119 if (filetype == 0xffff) /* no explicit 12-bit file type was set */
120 return 0;
121
122 *buf++ = ',';
123 *buf++ = hex_asc_lo(filetype >> 8);
124 *buf++ = hex_asc_lo(filetype >> 4);
125 *buf++ = hex_asc_lo(filetype >> 0);
126 return 4;
127}
128
129struct adfs_dir_ops { 116struct adfs_dir_ops {
130 int (*read)(struct super_block *sb, unsigned int id, unsigned int sz, struct adfs_dir *dir); 117 int (*read)(struct super_block *sb, unsigned int id, unsigned int sz, struct adfs_dir *dir);
131 int (*setpos)(struct adfs_dir *dir, unsigned int fpos); 118 int (*setpos)(struct adfs_dir *dir, unsigned int fpos);
@@ -172,6 +159,7 @@ extern const struct dentry_operations adfs_dentry_operations;
172extern const struct adfs_dir_ops adfs_f_dir_ops; 159extern const struct adfs_dir_ops adfs_f_dir_ops;
173extern const struct adfs_dir_ops adfs_fplus_dir_ops; 160extern const struct adfs_dir_ops adfs_fplus_dir_ops;
174 161
162void adfs_object_fixup(struct adfs_dir *dir, struct object_info *obj);
175extern int adfs_dir_update(struct super_block *sb, struct object_info *obj, 163extern int adfs_dir_update(struct super_block *sb, struct object_info *obj,
176 int wait); 164 int wait);
177 165
diff --git a/fs/adfs/dir.c b/fs/adfs/dir.c
index e18eff854e1a..35a4d9f4c3ae 100644
--- a/fs/adfs/dir.c
+++ b/fs/adfs/dir.c
@@ -1,12 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/adfs/dir.c 3 * linux/fs/adfs/dir.c
3 * 4 *
4 * Copyright (C) 1999-2000 Russell King 5 * Copyright (C) 1999-2000 Russell King
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 *
10 * Common directory handling for ADFS 7 * Common directory handling for ADFS
11 */ 8 */
12#include "adfs.h" 9#include "adfs.h"
@@ -16,6 +13,50 @@
16 */ 13 */
17static DEFINE_RWLOCK(adfs_dir_lock); 14static DEFINE_RWLOCK(adfs_dir_lock);
18 15
16void adfs_object_fixup(struct adfs_dir *dir, struct object_info *obj)
17{
18 unsigned int dots, i;
19
20 /*
21 * RISC OS allows the use of '/' in directory entry names, so we need
22 * to fix these up. '/' is typically used for FAT compatibility to
23 * represent '.', so do the same conversion here. In any case, '.'
24 * will never be in a RISC OS name since it is used as the pathname
25 * separator. Handle the case where we may generate a '.' or '..'
26 * name, replacing the first character with '^' (the RISC OS "parent
27 * directory" character.)
28 */
29 for (i = dots = 0; i < obj->name_len; i++)
30 if (obj->name[i] == '/') {
31 obj->name[i] = '.';
32 dots++;
33 }
34
35 if (obj->name_len <= 2 && dots == obj->name_len)
36 obj->name[0] = '^';
37
38 obj->filetype = -1;
39
40 /*
41 * object is a file and is filetyped and timestamped?
42 * RISC OS 12-bit filetype is stored in load_address[19:8]
43 */
44 if ((0 == (obj->attr & ADFS_NDA_DIRECTORY)) &&
45 (0xfff00000 == (0xfff00000 & obj->loadaddr))) {
46 obj->filetype = (__u16) ((0x000fff00 & obj->loadaddr) >> 8);
47
48 /* optionally append the ,xyz hex filetype suffix */
49 if (ADFS_SB(dir->sb)->s_ftsuffix) {
50 __u16 filetype = obj->filetype;
51
52 obj->name[obj->name_len++] = ',';
53 obj->name[obj->name_len++] = hex_asc_lo(filetype >> 8);
54 obj->name[obj->name_len++] = hex_asc_lo(filetype >> 4);
55 obj->name[obj->name_len++] = hex_asc_lo(filetype >> 0);
56 }
57 }
58}
59
19static int 60static int
20adfs_readdir(struct file *file, struct dir_context *ctx) 61adfs_readdir(struct file *file, struct dir_context *ctx)
21{ 62{
@@ -100,37 +141,36 @@ out:
100 return ret; 141 return ret;
101} 142}
102 143
103static int 144static unsigned char adfs_tolower(unsigned char c)
104adfs_match(const struct qstr *name, struct object_info *obj)
105{ 145{
106 int i; 146 if (c >= 'A' && c <= 'Z')
107 147 c += 'a' - 'A';
108 if (name->len != obj->name_len) 148 return c;
109 return 0; 149}
110 150
111 for (i = 0; i < name->len; i++) { 151static int __adfs_compare(const unsigned char *qstr, u32 qlen,
112 char c1, c2; 152 const char *str, u32 len)
153{
154 u32 i;
113 155
114 c1 = name->name[i]; 156 if (qlen != len)
115 c2 = obj->name[i]; 157 return 1;
116 158
117 if (c1 >= 'A' && c1 <= 'Z') 159 for (i = 0; i < qlen; i++)
118 c1 += 'a' - 'A'; 160 if (adfs_tolower(qstr[i]) != adfs_tolower(str[i]))
119 if (c2 >= 'A' && c2 <= 'Z') 161 return 1;
120 c2 += 'a' - 'A';
121 162
122 if (c1 != c2) 163 return 0;
123 return 0;
124 }
125 return 1;
126} 164}
127 165
128static int 166static int adfs_dir_lookup_byname(struct inode *inode, const struct qstr *qstr,
129adfs_dir_lookup_byname(struct inode *inode, const struct qstr *name, struct object_info *obj) 167 struct object_info *obj)
130{ 168{
131 struct super_block *sb = inode->i_sb; 169 struct super_block *sb = inode->i_sb;
132 const struct adfs_dir_ops *ops = ADFS_SB(sb)->s_dir; 170 const struct adfs_dir_ops *ops = ADFS_SB(sb)->s_dir;
171 const unsigned char *name;
133 struct adfs_dir dir; 172 struct adfs_dir dir;
173 u32 name_len;
134 int ret; 174 int ret;
135 175
136 ret = ops->read(sb, inode->i_ino, inode->i_size, &dir); 176 ret = ops->read(sb, inode->i_ino, inode->i_size, &dir);
@@ -153,8 +193,10 @@ adfs_dir_lookup_byname(struct inode *inode, const struct qstr *name, struct obje
153 goto unlock_out; 193 goto unlock_out;
154 194
155 ret = -ENOENT; 195 ret = -ENOENT;
196 name = qstr->name;
197 name_len = qstr->len;
156 while (ops->getnext(&dir, obj) == 0) { 198 while (ops->getnext(&dir, obj) == 0) {
157 if (adfs_match(name, obj)) { 199 if (!__adfs_compare(name, name_len, obj->name, obj->name_len)) {
158 ret = 0; 200 ret = 0;
159 break; 201 break;
160 } 202 }
@@ -179,30 +221,18 @@ const struct file_operations adfs_dir_operations = {
179static int 221static int
180adfs_hash(const struct dentry *parent, struct qstr *qstr) 222adfs_hash(const struct dentry *parent, struct qstr *qstr)
181{ 223{
182 const unsigned int name_len = ADFS_SB(parent->d_sb)->s_namelen;
183 const unsigned char *name; 224 const unsigned char *name;
184 unsigned long hash; 225 unsigned long hash;
185 int i; 226 u32 len;
186 227
187 if (qstr->len < name_len) 228 if (qstr->len > ADFS_SB(parent->d_sb)->s_namelen)
188 return 0; 229 return -ENAMETOOLONG;
189 230
190 /* 231 len = qstr->len;
191 * Truncate the name in place, avoids
192 * having to define a compare function.
193 */
194 qstr->len = i = name_len;
195 name = qstr->name; 232 name = qstr->name;
196 hash = init_name_hash(parent); 233 hash = init_name_hash(parent);
197 while (i--) { 234 while (len--)
198 char c; 235 hash = partial_name_hash(adfs_tolower(*name++), hash);
199
200 c = *name++;
201 if (c >= 'A' && c <= 'Z')
202 c += 'a' - 'A';
203
204 hash = partial_name_hash(c, hash);
205 }
206 qstr->hash = end_name_hash(hash); 236 qstr->hash = end_name_hash(hash);
207 237
208 return 0; 238 return 0;
@@ -212,30 +242,10 @@ adfs_hash(const struct dentry *parent, struct qstr *qstr)
212 * Compare two names, taking note of the name length 242 * Compare two names, taking note of the name length
213 * requirements of the underlying filesystem. 243 * requirements of the underlying filesystem.
214 */ 244 */
215static int 245static int adfs_compare(const struct dentry *dentry, unsigned int len,
216adfs_compare(const struct dentry *dentry, 246 const char *str, const struct qstr *qstr)
217 unsigned int len, const char *str, const struct qstr *name)
218{ 247{
219 int i; 248 return __adfs_compare(qstr->name, qstr->len, str, len);
220
221 if (len != name->len)
222 return 1;
223
224 for (i = 0; i < name->len; i++) {
225 char a, b;
226
227 a = str[i];
228 b = name->name[i];
229
230 if (a >= 'A' && a <= 'Z')
231 a += 'a' - 'A';
232 if (b >= 'A' && b <= 'Z')
233 b += 'a' - 'A';
234
235 if (a != b)
236 return 1;
237 }
238 return 0;
239} 249}
240 250
241const struct dentry_operations adfs_dentry_operations = { 251const struct dentry_operations adfs_dentry_operations = {
diff --git a/fs/adfs/dir_f.c b/fs/adfs/dir_f.c
index 382c9d7ad375..7557378e58b3 100644
--- a/fs/adfs/dir_f.c
+++ b/fs/adfs/dir_f.c
@@ -1,12 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/adfs/dir_f.c 3 * linux/fs/adfs/dir_f.c
3 * 4 *
4 * Copyright (C) 1997-1999 Russell King 5 * Copyright (C) 1997-1999 Russell King
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 *
10 * E and F format directory handling 7 * E and F format directory handling
11 */ 8 */
12#include <linux/buffer_head.h> 9#include <linux/buffer_head.h>
@@ -47,21 +44,6 @@ static inline void adfs_writeval(unsigned char *p, int len, unsigned int val)
47 } 44 }
48} 45}
49 46
50static inline int adfs_readname(char *buf, char *ptr, int maxlen)
51{
52 char *old_buf = buf;
53
54 while ((unsigned char)*ptr >= ' ' && maxlen--) {
55 if (*ptr == '/')
56 *buf++ = '.';
57 else
58 *buf++ = *ptr;
59 ptr++;
60 }
61
62 return buf - old_buf;
63}
64
65#define ror13(v) ((v >> 13) | (v << 19)) 47#define ror13(v) ((v >> 13) | (v << 19))
66 48
67#define dir_u8(idx) \ 49#define dir_u8(idx) \
@@ -216,29 +198,23 @@ static inline void
216adfs_dir2obj(struct adfs_dir *dir, struct object_info *obj, 198adfs_dir2obj(struct adfs_dir *dir, struct object_info *obj,
217 struct adfs_direntry *de) 199 struct adfs_direntry *de)
218{ 200{
219 obj->name_len = adfs_readname(obj->name, de->dirobname, ADFS_F_NAME_LEN); 201 unsigned int name_len;
202
203 for (name_len = 0; name_len < ADFS_F_NAME_LEN; name_len++) {
204 if (de->dirobname[name_len] < ' ')
205 break;
206
207 obj->name[name_len] = de->dirobname[name_len];
208 }
209
210 obj->name_len = name_len;
220 obj->file_id = adfs_readval(de->dirinddiscadd, 3); 211 obj->file_id = adfs_readval(de->dirinddiscadd, 3);
221 obj->loadaddr = adfs_readval(de->dirload, 4); 212 obj->loadaddr = adfs_readval(de->dirload, 4);
222 obj->execaddr = adfs_readval(de->direxec, 4); 213 obj->execaddr = adfs_readval(de->direxec, 4);
223 obj->size = adfs_readval(de->dirlen, 4); 214 obj->size = adfs_readval(de->dirlen, 4);
224 obj->attr = de->newdiratts; 215 obj->attr = de->newdiratts;
225 obj->filetype = -1;
226 216
227 /* 217 adfs_object_fixup(dir, obj);
228 * object is a file and is filetyped and timestamped?
229 * RISC OS 12-bit filetype is stored in load_address[19:8]
230 */
231 if ((0 == (obj->attr & ADFS_NDA_DIRECTORY)) &&
232 (0xfff00000 == (0xfff00000 & obj->loadaddr))) {
233 obj->filetype = (__u16) ((0x000fff00 & obj->loadaddr) >> 8);
234
235 /* optionally append the ,xyz hex filetype suffix */
236 if (ADFS_SB(dir->sb)->s_ftsuffix)
237 obj->name_len +=
238 append_filetype_suffix(
239 &obj->name[obj->name_len],
240 obj->filetype);
241 }
242} 218}
243 219
244/* 220/*
diff --git a/fs/adfs/dir_f.h b/fs/adfs/dir_f.h
index e4713404096c..5aec332b90f5 100644
--- a/fs/adfs/dir_f.h
+++ b/fs/adfs/dir_f.h
@@ -1,12 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * linux/fs/adfs/dir_f.h 3 * linux/fs/adfs/dir_f.h
3 * 4 *
4 * Copyright (C) 1999 Russell King 5 * Copyright (C) 1999 Russell King
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 *
10 * Structures of directories on the F format disk 7 * Structures of directories on the F format disk
11 */ 8 */
12#ifndef ADFS_DIR_F_H 9#ifndef ADFS_DIR_F_H
diff --git a/fs/adfs/dir_fplus.c b/fs/adfs/dir_fplus.c
index c92cfb638c18..6c5fbb0259c9 100644
--- a/fs/adfs/dir_fplus.c
+++ b/fs/adfs/dir_fplus.c
@@ -1,11 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/adfs/dir_fplus.c 3 * linux/fs/adfs/dir_fplus.c
3 * 4 *
4 * Copyright (C) 1997-1999 Russell King 5 * Copyright (C) 1997-1999 Russell King
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */ 6 */
10#include <linux/buffer_head.h> 7#include <linux/buffer_head.h>
11#include <linux/slab.h> 8#include <linux/slab.h>
@@ -169,7 +166,7 @@ adfs_fplus_getnext(struct adfs_dir *dir, struct object_info *obj)
169 (struct adfs_bigdirheader *) dir->bh_fplus[0]->b_data; 166 (struct adfs_bigdirheader *) dir->bh_fplus[0]->b_data;
170 struct adfs_bigdirentry bde; 167 struct adfs_bigdirentry bde;
171 unsigned int offset; 168 unsigned int offset;
172 int i, ret = -ENOENT; 169 int ret = -ENOENT;
173 170
174 if (dir->pos >= le32_to_cpu(h->bigdirentries)) 171 if (dir->pos >= le32_to_cpu(h->bigdirentries))
175 goto out; 172 goto out;
@@ -193,27 +190,7 @@ adfs_fplus_getnext(struct adfs_dir *dir, struct object_info *obj)
193 offset += le32_to_cpu(bde.bigdirobnameptr); 190 offset += le32_to_cpu(bde.bigdirobnameptr);
194 191
195 dir_memcpy(dir, offset, obj->name, obj->name_len); 192 dir_memcpy(dir, offset, obj->name, obj->name_len);
196 for (i = 0; i < obj->name_len; i++) 193 adfs_object_fixup(dir, obj);
197 if (obj->name[i] == '/')
198 obj->name[i] = '.';
199
200 obj->filetype = -1;
201
202 /*
203 * object is a file and is filetyped and timestamped?
204 * RISC OS 12-bit filetype is stored in load_address[19:8]
205 */
206 if ((0 == (obj->attr & ADFS_NDA_DIRECTORY)) &&
207 (0xfff00000 == (0xfff00000 & obj->loadaddr))) {
208 obj->filetype = (__u16) ((0x000fff00 & obj->loadaddr) >> 8);
209
210 /* optionally append the ,xyz hex filetype suffix */
211 if (ADFS_SB(dir->sb)->s_ftsuffix)
212 obj->name_len +=
213 append_filetype_suffix(
214 &obj->name[obj->name_len],
215 obj->filetype);
216 }
217 194
218 dir->pos += 1; 195 dir->pos += 1;
219 ret = 0; 196 ret = 0;
diff --git a/fs/adfs/dir_fplus.h b/fs/adfs/dir_fplus.h
index b55aa41a68fe..4ec0931e36ad 100644
--- a/fs/adfs/dir_fplus.h
+++ b/fs/adfs/dir_fplus.h
@@ -1,12 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * linux/fs/adfs/dir_fplus.h 3 * linux/fs/adfs/dir_fplus.h
3 * 4 *
4 * Copyright (C) 1999 Russell King 5 * Copyright (C) 1999 Russell King
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 *
10 * Structures of directories on the F+ format disk 7 * Structures of directories on the F+ format disk
11 */ 8 */
12 9
diff --git a/fs/adfs/inode.c b/fs/adfs/inode.c
index 66621e96f9af..904d624541ad 100644
--- a/fs/adfs/inode.c
+++ b/fs/adfs/inode.c
@@ -1,11 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/adfs/inode.c 3 * linux/fs/adfs/inode.c
3 * 4 *
4 * Copyright (C) 1997-1999 Russell King 5 * Copyright (C) 1997-1999 Russell King
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */ 6 */
10#include <linux/buffer_head.h> 7#include <linux/buffer_head.h>
11#include <linux/writeback.h> 8#include <linux/writeback.h>
diff --git a/fs/adfs/map.c b/fs/adfs/map.c
index 6935f05202ac..4d34338c6176 100644
--- a/fs/adfs/map.c
+++ b/fs/adfs/map.c
@@ -1,11 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/adfs/map.c 3 * linux/fs/adfs/map.c
3 * 4 *
4 * Copyright (C) 1997-2002 Russell King 5 * Copyright (C) 1997-2002 Russell King
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */ 6 */
10#include <linux/buffer_head.h> 7#include <linux/buffer_head.h>
11#include <asm/unaligned.h> 8#include <asm/unaligned.h>
diff --git a/fs/adfs/super.c b/fs/adfs/super.c
index 2a83655c408f..ffb669f9bba7 100644
--- a/fs/adfs/super.c
+++ b/fs/adfs/super.c
@@ -1,11 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/adfs/super.c 3 * linux/fs/adfs/super.c
3 * 4 *
4 * Copyright (C) 1997-1999 Russell King 5 * Copyright (C) 1997-1999 Russell King
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */ 6 */
10#include <linux/module.h> 7#include <linux/module.h>
11#include <linux/init.h> 8#include <linux/init.h>
diff --git a/fs/affs/Kconfig b/fs/affs/Kconfig
index a04d9e848d05..84c46b9025c5 100644
--- a/fs/affs/Kconfig
+++ b/fs/affs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config AFFS_FS 2config AFFS_FS
2 tristate "Amiga FFS file system support" 3 tristate "Amiga FFS file system support"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/affs/Makefile b/fs/affs/Makefile
index 3988b4a78339..f2c811429a4e 100644
--- a/fs/affs/Makefile
+++ b/fs/affs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the Linux affs filesystem routines. 3# Makefile for the Linux affs filesystem routines.
3# 4#
diff --git a/fs/affs/super.c b/fs/affs/super.c
index 7370228eefb2..e7d036efbaa1 100644
--- a/fs/affs/super.c
+++ b/fs/affs/super.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/affs/inode.c 3 * linux/fs/affs/inode.c
3 * 4 *
diff --git a/fs/afs/Kconfig b/fs/afs/Kconfig
index 701aaa9b1899..3fb1f559e317 100644
--- a/fs/afs/Kconfig
+++ b/fs/afs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config AFS_FS 2config AFS_FS
2 tristate "Andrew File System support (AFS)" 3 tristate "Andrew File System support (AFS)"
3 depends on INET 4 depends on INET
diff --git a/fs/afs/addr_list.c b/fs/afs/addr_list.c
index 9eaff55df7b4..86da532c192f 100644
--- a/fs/afs/addr_list.c
+++ b/fs/afs/addr_list.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Server address list management 2/* Server address list management
2 * 3 *
3 * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/slab.h> 8#include <linux/slab.h>
diff --git a/fs/afs/afs.h b/fs/afs/afs.h
index 3f4e460c6655..b6d49d646ade 100644
--- a/fs/afs/afs.h
+++ b/fs/afs/afs.h
@@ -1,12 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* AFS common types 2/* AFS common types
2 * 3 *
3 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#ifndef AFS_H 8#ifndef AFS_H
diff --git a/fs/afs/afs_cm.h b/fs/afs/afs_cm.h
index 255f5dd6040c..565cbe0a8af6 100644
--- a/fs/afs/afs_cm.h
+++ b/fs/afs/afs_cm.h
@@ -1,12 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* AFS Cache Manager definitions 2/* AFS Cache Manager definitions
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#ifndef AFS_CM_H 8#ifndef AFS_CM_H
diff --git a/fs/afs/afs_fs.h b/fs/afs/afs_fs.h
index 18a54ca422f8..20ab344baf9d 100644
--- a/fs/afs/afs_fs.h
+++ b/fs/afs/afs_fs.h
@@ -1,12 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* AFS File Service definitions 2/* AFS File Service definitions
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#ifndef AFS_FS_H 8#ifndef AFS_FS_H
diff --git a/fs/afs/afs_vl.h b/fs/afs/afs_vl.h
index e3c4688f573b..e9b8029920ec 100644
--- a/fs/afs/afs_vl.h
+++ b/fs/afs/afs_vl.h
@@ -1,12 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* AFS Volume Location Service client interface 2/* AFS Volume Location Service client interface
2 * 3 *
3 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#ifndef AFS_VL_H 8#ifndef AFS_VL_H
diff --git a/fs/afs/cache.c b/fs/afs/cache.c
index f6d0a21e8052..037af93e3aba 100644
--- a/fs/afs/cache.c
+++ b/fs/afs/cache.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS caching stuff 2/* AFS caching stuff
2 * 3 *
3 * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/sched.h> 8#include <linux/sched.h>
diff --git a/fs/afs/callback.c b/fs/afs/callback.c
index d441bef72163..915010464572 100644
--- a/fs/afs/callback.c
+++ b/fs/afs/callback.c
@@ -275,9 +275,9 @@ static void afs_break_one_callback(struct afs_server *server,
275 struct afs_super_info *as = AFS_FS_S(cbi->sb); 275 struct afs_super_info *as = AFS_FS_S(cbi->sb);
276 struct afs_volume *volume = as->volume; 276 struct afs_volume *volume = as->volume;
277 277
278 write_lock(&volume->cb_break_lock); 278 write_lock(&volume->cb_v_break_lock);
279 volume->cb_v_break++; 279 volume->cb_v_break++;
280 write_unlock(&volume->cb_break_lock); 280 write_unlock(&volume->cb_v_break_lock);
281 } else { 281 } else {
282 data.volume = NULL; 282 data.volume = NULL;
283 data.fid = *fid; 283 data.fid = *fid;
diff --git a/fs/afs/cell.c b/fs/afs/cell.c
index 9c3b07ba2222..a2a87117d262 100644
--- a/fs/afs/cell.c
+++ b/fs/afs/cell.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS cell and server record management 2/* AFS cell and server record management
2 * 3 *
3 * Copyright (C) 2002, 2017 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2002, 2017 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/slab.h> 8#include <linux/slab.h>
diff --git a/fs/afs/cmservice.c b/fs/afs/cmservice.c
index 01437cfe5432..3451be03667f 100644
--- a/fs/afs/cmservice.c
+++ b/fs/afs/cmservice.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS Cache Manager Service 2/* AFS Cache Manager Service
2 * 3 *
3 * Copyright (C) 2002 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2002 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/module.h> 8#include <linux/module.h>
diff --git a/fs/afs/dir.c b/fs/afs/dir.c
index 79d93a26759a..da9563d62b32 100644
--- a/fs/afs/dir.c
+++ b/fs/afs/dir.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* dir.c: AFS filesystem directory handling 2/* dir.c: AFS filesystem directory handling
2 * 3 *
3 * Copyright (C) 2002, 2018 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2002, 2018 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/kernel.h> 8#include <linux/kernel.h>
diff --git a/fs/afs/dir_edit.c b/fs/afs/dir_edit.c
index 8b400f5aead5..d4fbe5f85f1b 100644
--- a/fs/afs/dir_edit.c
+++ b/fs/afs/dir_edit.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS filesystem directory editing 2/* AFS filesystem directory editing
2 * 3 *
3 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/kernel.h> 8#include <linux/kernel.h>
diff --git a/fs/afs/dir_silly.c b/fs/afs/dir_silly.c
index 28f4aa015229..057b8d322422 100644
--- a/fs/afs/dir_silly.c
+++ b/fs/afs/dir_silly.c
@@ -1,13 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS silly rename handling 2/* AFS silly rename handling
2 * 3 *
3 * Copyright (C) 2019 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2019 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 * - Derived from NFS's sillyrename. 6 * - Derived from NFS's sillyrename.
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public Licence
9 * as published by the Free Software Foundation; either version
10 * 2 of the Licence, or (at your option) any later version.
11 */ 7 */
12 8
13#include <linux/kernel.h> 9#include <linux/kernel.h>
diff --git a/fs/afs/dynroot.c b/fs/afs/dynroot.c
index af1689d1f32e..9b3b2f1f1fc0 100644
--- a/fs/afs/dynroot.c
+++ b/fs/afs/dynroot.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS dynamic root handling 2/* AFS dynamic root handling
2 * 3 *
3 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/fs.h> 8#include <linux/fs.h>
diff --git a/fs/afs/file.c b/fs/afs/file.c
index 11e69c5fb7ab..8fd7d3b9a1b1 100644
--- a/fs/afs/file.c
+++ b/fs/afs/file.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS filesystem file handling 2/* AFS filesystem file handling
2 * 3 *
3 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/kernel.h> 8#include <linux/kernel.h>
diff --git a/fs/afs/flock.c b/fs/afs/flock.c
index ed3ac03682d7..d5e5a6ddc847 100644
--- a/fs/afs/flock.c
+++ b/fs/afs/flock.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS file locking support 2/* AFS file locking support
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include "internal.h" 8#include "internal.h"
diff --git a/fs/afs/fs_probe.c b/fs/afs/fs_probe.c
index 9b7266209343..cfe62b154f68 100644
--- a/fs/afs/fs_probe.c
+++ b/fs/afs/fs_probe.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS fileserver probing 2/* AFS fileserver probing
2 * 3 *
3 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/sched.h> 8#include <linux/sched.h>
diff --git a/fs/afs/fsclient.c b/fs/afs/fsclient.c
index 48298408d6ac..a1ef0266422a 100644
--- a/fs/afs/fsclient.c
+++ b/fs/afs/fsclient.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS File Server client stubs 2/* AFS File Server client stubs
2 * 3 *
3 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/init.h> 8#include <linux/init.h>
diff --git a/fs/afs/inode.c b/fs/afs/inode.c
index b42d9d09669c..18a50d4febcf 100644
--- a/fs/afs/inode.c
+++ b/fs/afs/inode.c
@@ -56,6 +56,16 @@ static noinline void dump_vnode(struct afs_vnode *vnode, struct afs_vnode *paren
56} 56}
57 57
58/* 58/*
59 * Set the file size and block count. Estimate the number of 512 bytes blocks
60 * used, rounded up to nearest 1K for consistency with other AFS clients.
61 */
62static void afs_set_i_size(struct afs_vnode *vnode, u64 size)
63{
64 i_size_write(&vnode->vfs_inode, size);
65 vnode->vfs_inode.i_blocks = ((size + 1023) >> 10) << 1;
66}
67
68/*
59 * Initialise an inode from the vnode status. 69 * Initialise an inode from the vnode status.
60 */ 70 */
61static int afs_inode_init_from_status(struct afs_vnode *vnode, struct key *key, 71static int afs_inode_init_from_status(struct afs_vnode *vnode, struct key *key,
@@ -124,12 +134,7 @@ static int afs_inode_init_from_status(struct afs_vnode *vnode, struct key *key,
124 return afs_protocol_error(NULL, -EBADMSG, afs_eproto_file_type); 134 return afs_protocol_error(NULL, -EBADMSG, afs_eproto_file_type);
125 } 135 }
126 136
127 /* 137 afs_set_i_size(vnode, status->size);
128 * Estimate 512 bytes blocks used, rounded up to nearest 1K
129 * for consistency with other AFS clients.
130 */
131 inode->i_blocks = ((i_size_read(inode) + 1023) >> 10) << 1;
132 i_size_write(&vnode->vfs_inode, status->size);
133 138
134 vnode->invalid_before = status->data_version; 139 vnode->invalid_before = status->data_version;
135 inode_set_iversion_raw(&vnode->vfs_inode, status->data_version); 140 inode_set_iversion_raw(&vnode->vfs_inode, status->data_version);
@@ -207,11 +212,13 @@ static void afs_apply_status(struct afs_fs_cursor *fc,
207 212
208 if (expected_version && 213 if (expected_version &&
209 *expected_version != status->data_version) { 214 *expected_version != status->data_version) {
210 kdebug("vnode modified %llx on {%llx:%llu} [exp %llx] %s", 215 if (test_bit(AFS_VNODE_CB_PROMISED, &vnode->flags))
211 (unsigned long long) status->data_version, 216 pr_warn("kAFS: vnode modified {%llx:%llu} %llx->%llx %s\n",
212 vnode->fid.vid, vnode->fid.vnode, 217 vnode->fid.vid, vnode->fid.vnode,
213 (unsigned long long) *expected_version, 218 (unsigned long long)*expected_version,
214 fc->type ? fc->type->name : "???"); 219 (unsigned long long)status->data_version,
220 fc->type ? fc->type->name : "???");
221
215 vnode->invalid_before = status->data_version; 222 vnode->invalid_before = status->data_version;
216 if (vnode->status.type == AFS_FTYPE_DIR) { 223 if (vnode->status.type == AFS_FTYPE_DIR) {
217 if (test_and_clear_bit(AFS_VNODE_DIR_VALID, &vnode->flags)) 224 if (test_and_clear_bit(AFS_VNODE_DIR_VALID, &vnode->flags))
@@ -230,7 +237,7 @@ static void afs_apply_status(struct afs_fs_cursor *fc,
230 237
231 if (data_changed) { 238 if (data_changed) {
232 inode_set_iversion_raw(&vnode->vfs_inode, status->data_version); 239 inode_set_iversion_raw(&vnode->vfs_inode, status->data_version);
233 i_size_write(&vnode->vfs_inode, status->size); 240 afs_set_i_size(vnode, status->size);
234 } 241 }
235} 242}
236 243
diff --git a/fs/afs/internal.h b/fs/afs/internal.h
index 2073c1a3ab4b..7ee63526c6a2 100644
--- a/fs/afs/internal.h
+++ b/fs/afs/internal.h
@@ -1,12 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* internal AFS stuff 2/* internal AFS stuff
2 * 3 *
3 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/compiler.h> 8#include <linux/compiler.h>
@@ -113,10 +109,8 @@ struct afs_call {
113 struct rxrpc_call *rxcall; /* RxRPC call handle */ 109 struct rxrpc_call *rxcall; /* RxRPC call handle */
114 struct key *key; /* security for this call */ 110 struct key *key; /* security for this call */
115 struct afs_net *net; /* The network namespace */ 111 struct afs_net *net; /* The network namespace */
116 union { 112 struct afs_server *server; /* The fileserver record if fs op (pins ref) */
117 struct afs_server *server; 113 struct afs_vlserver *vlserver; /* The vlserver record if vl op */
118 struct afs_vlserver *vlserver;
119 };
120 struct afs_cb_interest *cbi; /* Callback interest for server used */ 114 struct afs_cb_interest *cbi; /* Callback interest for server used */
121 struct afs_vnode *lvnode; /* vnode being locked */ 115 struct afs_vnode *lvnode; /* vnode being locked */
122 void *request; /* request data (first part) */ 116 void *request; /* request data (first part) */
@@ -620,7 +614,7 @@ struct afs_volume {
620 unsigned int servers_seq; /* Incremented each time ->servers changes */ 614 unsigned int servers_seq; /* Incremented each time ->servers changes */
621 615
622 unsigned cb_v_break; /* Break-everything counter. */ 616 unsigned cb_v_break; /* Break-everything counter. */
623 rwlock_t cb_break_lock; 617 rwlock_t cb_v_break_lock;
624 618
625 afs_voltype_t type; /* type of volume */ 619 afs_voltype_t type; /* type of volume */
626 short error; 620 short error;
diff --git a/fs/afs/main.c b/fs/afs/main.c
index 107427688edd..c9c45d7078bd 100644
--- a/fs/afs/main.c
+++ b/fs/afs/main.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS client file system 2/* AFS client file system
2 * 3 *
3 * Copyright (C) 2002,5 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2002,5 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/module.h> 8#include <linux/module.h>
diff --git a/fs/afs/misc.c b/fs/afs/misc.c
index 7f2af061ea06..5497ab38f585 100644
--- a/fs/afs/misc.c
+++ b/fs/afs/misc.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* miscellaneous bits 2/* miscellaneous bits
2 * 3 *
3 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/kernel.h> 8#include <linux/kernel.h>
diff --git a/fs/afs/mntpt.c b/fs/afs/mntpt.c
index eecd8b699186..f532d6d3bd28 100644
--- a/fs/afs/mntpt.c
+++ b/fs/afs/mntpt.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* mountpoint management 2/* mountpoint management
2 * 3 *
3 * Copyright (C) 2002 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2002 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/kernel.h> 8#include <linux/kernel.h>
diff --git a/fs/afs/proc.c b/fs/afs/proc.c
index 371501d28e08..fba2ec3a3a9c 100644
--- a/fs/afs/proc.c
+++ b/fs/afs/proc.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* /proc interface for AFS 2/* /proc interface for AFS
2 * 3 *
3 * Copyright (C) 2002 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2002 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/slab.h> 8#include <linux/slab.h>
diff --git a/fs/afs/protocol_yfs.h b/fs/afs/protocol_yfs.h
index 915b9d10cdf3..32be9c698348 100644
--- a/fs/afs/protocol_yfs.h
+++ b/fs/afs/protocol_yfs.h
@@ -1,12 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* YFS protocol bits 2/* YFS protocol bits
2 * 3 *
3 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#define YFS_FS_SERVICE 2500 8#define YFS_FS_SERVICE 2500
diff --git a/fs/afs/rotate.c b/fs/afs/rotate.c
index b00c739e0e63..172ba569cd60 100644
--- a/fs/afs/rotate.c
+++ b/fs/afs/rotate.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Handle fileserver selection and rotation. 2/* Handle fileserver selection and rotation.
2 * 3 *
3 * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/kernel.h> 8#include <linux/kernel.h>
diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c
index 4fa5ce92b9b9..d1dde2834b6d 100644
--- a/fs/afs/rxrpc.c
+++ b/fs/afs/rxrpc.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Maintain an RxRPC server socket to do AFS communications through 2/* Maintain an RxRPC server socket to do AFS communications through
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/slab.h> 8#include <linux/slab.h>
diff --git a/fs/afs/security.c b/fs/afs/security.c
index 5d8ece98561e..71e71c07568f 100644
--- a/fs/afs/security.c
+++ b/fs/afs/security.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS security handling 2/* AFS security handling
2 * 3 *
3 * Copyright (C) 2007, 2017 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007, 2017 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/init.h> 8#include <linux/init.h>
diff --git a/fs/afs/server.c b/fs/afs/server.c
index 52c170b59cfd..e900cd74361b 100644
--- a/fs/afs/server.c
+++ b/fs/afs/server.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS server record management 2/* AFS server record management
2 * 3 *
3 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/sched.h> 8#include <linux/sched.h>
diff --git a/fs/afs/server_list.c b/fs/afs/server_list.c
index 155dc14caef9..b4988bc8e6f2 100644
--- a/fs/afs/server_list.c
+++ b/fs/afs/server_list.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS fileserver list management. 2/* AFS fileserver list management.
2 * 3 *
3 * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/kernel.h> 8#include <linux/kernel.h>
diff --git a/fs/afs/vl_list.c b/fs/afs/vl_list.c
index 61e25010ff33..21eb0c0be912 100644
--- a/fs/afs/vl_list.c
+++ b/fs/afs/vl_list.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS vlserver list management. 2/* AFS vlserver list management.
2 * 3 *
3 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/kernel.h> 8#include <linux/kernel.h>
diff --git a/fs/afs/vl_probe.c b/fs/afs/vl_probe.c
index beb991563939..858498cc1b05 100644
--- a/fs/afs/vl_probe.c
+++ b/fs/afs/vl_probe.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS vlserver probing 2/* AFS vlserver probing
2 * 3 *
3 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/sched.h> 8#include <linux/sched.h>
diff --git a/fs/afs/vl_rotate.c b/fs/afs/vl_rotate.c
index 3f845489a9f0..9a5ce9687779 100644
--- a/fs/afs/vl_rotate.c
+++ b/fs/afs/vl_rotate.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Handle vlserver selection and rotation. 2/* Handle vlserver selection and rotation.
2 * 3 *
3 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/kernel.h> 8#include <linux/kernel.h>
diff --git a/fs/afs/vlclient.c b/fs/afs/vlclient.c
index 3d4b9836a2e2..d7e0fd3c00df 100644
--- a/fs/afs/vlclient.c
+++ b/fs/afs/vlclient.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS Volume Location Service client 2/* AFS Volume Location Service client
2 * 3 *
3 * Copyright (C) 2002 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2002 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/gfp.h> 8#include <linux/gfp.h>
diff --git a/fs/afs/volume.c b/fs/afs/volume.c
index f6eba2def0a1..1a414300b654 100644
--- a/fs/afs/volume.c
+++ b/fs/afs/volume.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* AFS volume management 2/* AFS volume management
2 * 3 *
3 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/kernel.h> 8#include <linux/kernel.h>
@@ -47,6 +43,7 @@ static struct afs_volume *afs_alloc_volume(struct afs_fs_context *params,
47 atomic_set(&volume->usage, 1); 43 atomic_set(&volume->usage, 1);
48 INIT_LIST_HEAD(&volume->proc_link); 44 INIT_LIST_HEAD(&volume->proc_link);
49 rwlock_init(&volume->servers_lock); 45 rwlock_init(&volume->servers_lock);
46 rwlock_init(&volume->cb_v_break_lock);
50 memcpy(volume->name, vldb->name, vldb->name_len + 1); 47 memcpy(volume->name, vldb->name, vldb->name_len + 1);
51 48
52 slist = afs_alloc_server_list(params->cell, params->key, vldb, type_mask); 49 slist = afs_alloc_server_list(params->cell, params->key, vldb, type_mask);
diff --git a/fs/afs/write.c b/fs/afs/write.c
index 8bcab95f1127..98eb7adbce91 100644
--- a/fs/afs/write.c
+++ b/fs/afs/write.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* handling of writes to regular files and writing back to the server 2/* handling of writes to regular files and writing back to the server
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/backing-dev.h> 8#include <linux/backing-dev.h>
diff --git a/fs/afs/xattr.c b/fs/afs/xattr.c
index 17f58fea7ec1..5552d034090a 100644
--- a/fs/afs/xattr.c
+++ b/fs/afs/xattr.c
@@ -1,13 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Extended attribute handling for AFS. We use xattrs to get and set metadata 2/* Extended attribute handling for AFS. We use xattrs to get and set metadata
2 * instead of providing pioctl(). 3 * instead of providing pioctl().
3 * 4 *
4 * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved. 5 * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved.
5 * Written by David Howells (dhowells@redhat.com) 6 * Written by David Howells (dhowells@redhat.com)
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public Licence
9 * as published by the Free Software Foundation; either version
10 * 2 of the Licence, or (at your option) any later version.
11 */ 7 */
12 8
13#include <linux/slab.h> 9#include <linux/slab.h>
diff --git a/fs/afs/xdr_fs.h b/fs/afs/xdr_fs.h
index aa21f3068d52..94f1f398eefa 100644
--- a/fs/afs/xdr_fs.h
+++ b/fs/afs/xdr_fs.h
@@ -1,12 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* AFS fileserver XDR types 2/* AFS fileserver XDR types
2 * 3 *
3 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#ifndef XDR_FS_H 8#ifndef XDR_FS_H
diff --git a/fs/afs/yfsclient.c b/fs/afs/yfsclient.c
index 10de675dc6fc..18722aaeda33 100644
--- a/fs/afs/yfsclient.c
+++ b/fs/afs/yfsclient.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* YFS File Server client stubs 2/* YFS File Server client stubs
2 * 3 *
3 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/init.h> 8#include <linux/init.h>
diff --git a/fs/aio.c b/fs/aio.c
index 3490d1fa0e16..c1e581dd32f5 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -2095,6 +2095,7 @@ SYSCALL_DEFINE6(io_pgetevents,
2095 struct __aio_sigset ksig = { NULL, }; 2095 struct __aio_sigset ksig = { NULL, };
2096 sigset_t ksigmask, sigsaved; 2096 sigset_t ksigmask, sigsaved;
2097 struct timespec64 ts; 2097 struct timespec64 ts;
2098 bool interrupted;
2098 int ret; 2099 int ret;
2099 2100
2100 if (timeout && unlikely(get_timespec64(&ts, timeout))) 2101 if (timeout && unlikely(get_timespec64(&ts, timeout)))
@@ -2108,8 +2109,10 @@ SYSCALL_DEFINE6(io_pgetevents,
2108 return ret; 2109 return ret;
2109 2110
2110 ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &ts : NULL); 2111 ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &ts : NULL);
2111 restore_user_sigmask(ksig.sigmask, &sigsaved); 2112
2112 if (signal_pending(current) && !ret) 2113 interrupted = signal_pending(current);
2114 restore_user_sigmask(ksig.sigmask, &sigsaved, interrupted);
2115 if (interrupted && !ret)
2113 ret = -ERESTARTNOHAND; 2116 ret = -ERESTARTNOHAND;
2114 2117
2115 return ret; 2118 return ret;
@@ -2128,6 +2131,7 @@ SYSCALL_DEFINE6(io_pgetevents_time32,
2128 struct __aio_sigset ksig = { NULL, }; 2131 struct __aio_sigset ksig = { NULL, };
2129 sigset_t ksigmask, sigsaved; 2132 sigset_t ksigmask, sigsaved;
2130 struct timespec64 ts; 2133 struct timespec64 ts;
2134 bool interrupted;
2131 int ret; 2135 int ret;
2132 2136
2133 if (timeout && unlikely(get_old_timespec32(&ts, timeout))) 2137 if (timeout && unlikely(get_old_timespec32(&ts, timeout)))
@@ -2142,8 +2146,10 @@ SYSCALL_DEFINE6(io_pgetevents_time32,
2142 return ret; 2146 return ret;
2143 2147
2144 ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &ts : NULL); 2148 ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &ts : NULL);
2145 restore_user_sigmask(ksig.sigmask, &sigsaved); 2149
2146 if (signal_pending(current) && !ret) 2150 interrupted = signal_pending(current);
2151 restore_user_sigmask(ksig.sigmask, &sigsaved, interrupted);
2152 if (interrupted && !ret)
2147 ret = -ERESTARTNOHAND; 2153 ret = -ERESTARTNOHAND;
2148 2154
2149 return ret; 2155 return ret;
@@ -2193,6 +2199,7 @@ COMPAT_SYSCALL_DEFINE6(io_pgetevents,
2193 struct __compat_aio_sigset ksig = { NULL, }; 2199 struct __compat_aio_sigset ksig = { NULL, };
2194 sigset_t ksigmask, sigsaved; 2200 sigset_t ksigmask, sigsaved;
2195 struct timespec64 t; 2201 struct timespec64 t;
2202 bool interrupted;
2196 int ret; 2203 int ret;
2197 2204
2198 if (timeout && get_old_timespec32(&t, timeout)) 2205 if (timeout && get_old_timespec32(&t, timeout))
@@ -2206,8 +2213,10 @@ COMPAT_SYSCALL_DEFINE6(io_pgetevents,
2206 return ret; 2213 return ret;
2207 2214
2208 ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &t : NULL); 2215 ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &t : NULL);
2209 restore_user_sigmask(ksig.sigmask, &sigsaved); 2216
2210 if (signal_pending(current) && !ret) 2217 interrupted = signal_pending(current);
2218 restore_user_sigmask(ksig.sigmask, &sigsaved, interrupted);
2219 if (interrupted && !ret)
2211 ret = -ERESTARTNOHAND; 2220 ret = -ERESTARTNOHAND;
2212 2221
2213 return ret; 2222 return ret;
@@ -2226,6 +2235,7 @@ COMPAT_SYSCALL_DEFINE6(io_pgetevents_time64,
2226 struct __compat_aio_sigset ksig = { NULL, }; 2235 struct __compat_aio_sigset ksig = { NULL, };
2227 sigset_t ksigmask, sigsaved; 2236 sigset_t ksigmask, sigsaved;
2228 struct timespec64 t; 2237 struct timespec64 t;
2238 bool interrupted;
2229 int ret; 2239 int ret;
2230 2240
2231 if (timeout && get_timespec64(&t, timeout)) 2241 if (timeout && get_timespec64(&t, timeout))
@@ -2239,8 +2249,10 @@ COMPAT_SYSCALL_DEFINE6(io_pgetevents_time64,
2239 return ret; 2249 return ret;
2240 2250
2241 ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &t : NULL); 2251 ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &t : NULL);
2242 restore_user_sigmask(ksig.sigmask, &sigsaved); 2252
2243 if (signal_pending(current) && !ret) 2253 interrupted = signal_pending(current);
2254 restore_user_sigmask(ksig.sigmask, &sigsaved, interrupted);
2255 if (interrupted && !ret)
2244 ret = -ERESTARTNOHAND; 2256 ret = -ERESTARTNOHAND;
2245 2257
2246 return ret; 2258 return ret;
diff --git a/fs/anon_inodes.c b/fs/anon_inodes.c
index 91262c34b797..c2b8663f5b00 100644
--- a/fs/anon_inodes.c
+++ b/fs/anon_inodes.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/anon_inodes.c 3 * fs/anon_inodes.c
3 * 4 *
diff --git a/fs/autofs/Kconfig b/fs/autofs/Kconfig
index eaebcd430cc3..3b3a6b1423c6 100644
--- a/fs/autofs/Kconfig
+++ b/fs/autofs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config AUTOFS4_FS 2config AUTOFS4_FS
2 tristate "Old Kconfig name for Kernel automounter support" 3 tristate "Old Kconfig name for Kernel automounter support"
3 select AUTOFS_FS 4 select AUTOFS_FS
diff --git a/fs/autofs/Makefile b/fs/autofs/Makefile
index 1f85d35ec8b7..495ac542e172 100644
--- a/fs/autofs/Makefile
+++ b/fs/autofs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the linux autofs-filesystem routines. 3# Makefile for the linux autofs-filesystem routines.
3# 4#
diff --git a/fs/autofs/autofs_i.h b/fs/autofs/autofs_i.h
index e1091312abe1..8c0c11181fad 100644
--- a/fs/autofs/autofs_i.h
+++ b/fs/autofs/autofs_i.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright 1997-1998 Transmeta Corporation - All Rights Reserved 3 * Copyright 1997-1998 Transmeta Corporation - All Rights Reserved
3 * Copyright 2005-2006 Ian Kent <raven@themaw.net> 4 * Copyright 2005-2006 Ian Kent <raven@themaw.net>
4 *
5 * This file is part of the Linux kernel and is made available under
6 * the terms of the GNU General Public License, version 2, or at your
7 * option, any later version, incorporated herein by reference.
8 */ 5 */
9 6
10/* Internal header file for autofs */ 7/* Internal header file for autofs */
diff --git a/fs/autofs/dev-ioctl.c b/fs/autofs/dev-ioctl.c
index e9fe74d1541b..a3cdb0036c5d 100644
--- a/fs/autofs/dev-ioctl.c
+++ b/fs/autofs/dev-ioctl.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright 2008 Red Hat, Inc. All rights reserved. 3 * Copyright 2008 Red Hat, Inc. All rights reserved.
3 * Copyright 2008 Ian Kent <raven@themaw.net> 4 * Copyright 2008 Ian Kent <raven@themaw.net>
4 *
5 * This file is part of the Linux kernel and is made available under
6 * the terms of the GNU General Public License, version 2, or at your
7 * option, any later version, incorporated herein by reference.
8 */ 5 */
9 6
10#include <linux/miscdevice.h> 7#include <linux/miscdevice.h>
diff --git a/fs/autofs/expire.c b/fs/autofs/expire.c
index 28d9c2b1b3bb..cdff0567aacb 100644
--- a/fs/autofs/expire.c
+++ b/fs/autofs/expire.c
@@ -1,11 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright 1997-1998 Transmeta Corporation -- All Rights Reserved 3 * Copyright 1997-1998 Transmeta Corporation -- All Rights Reserved
3 * Copyright 1999-2000 Jeremy Fitzhardinge <jeremy@goop.org> 4 * Copyright 1999-2000 Jeremy Fitzhardinge <jeremy@goop.org>
4 * Copyright 2001-2006 Ian Kent <raven@themaw.net> 5 * Copyright 2001-2006 Ian Kent <raven@themaw.net>
5 *
6 * This file is part of the Linux kernel and is made available under
7 * the terms of the GNU General Public License, version 2, or at your
8 * option, any later version, incorporated herein by reference.
9 */ 6 */
10 7
11#include "autofs_i.h" 8#include "autofs_i.h"
diff --git a/fs/autofs/init.c b/fs/autofs/init.c
index c0c1db2cc6ea..d3f55e874338 100644
--- a/fs/autofs/init.c
+++ b/fs/autofs/init.c
@@ -1,9 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright 1997-1998 Transmeta Corporation -- All Rights Reserved 3 * Copyright 1997-1998 Transmeta Corporation -- All Rights Reserved
3 *
4 * This file is part of the Linux kernel and is made available under
5 * the terms of the GNU General Public License, version 2, or at your
6 * option, any later version, incorporated herein by reference.
7 */ 4 */
8 5
9#include <linux/module.h> 6#include <linux/module.h>
diff --git a/fs/autofs/inode.c b/fs/autofs/inode.c
index fb0225f21c12..9edf243713eb 100644
--- a/fs/autofs/inode.c
+++ b/fs/autofs/inode.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright 1997-1998 Transmeta Corporation -- All Rights Reserved 3 * Copyright 1997-1998 Transmeta Corporation -- All Rights Reserved
3 * Copyright 2005-2006 Ian Kent <raven@themaw.net> 4 * Copyright 2005-2006 Ian Kent <raven@themaw.net>
4 *
5 * This file is part of the Linux kernel and is made available under
6 * the terms of the GNU General Public License, version 2, or at your
7 * option, any later version, incorporated herein by reference.
8 */ 5 */
9 6
10#include <linux/seq_file.h> 7#include <linux/seq_file.h>
diff --git a/fs/autofs/root.c b/fs/autofs/root.c
index 1246f396bf0e..e646569c75ed 100644
--- a/fs/autofs/root.c
+++ b/fs/autofs/root.c
@@ -1,11 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright 1997-1998 Transmeta Corporation -- All Rights Reserved 3 * Copyright 1997-1998 Transmeta Corporation -- All Rights Reserved
3 * Copyright 1999-2000 Jeremy Fitzhardinge <jeremy@goop.org> 4 * Copyright 1999-2000 Jeremy Fitzhardinge <jeremy@goop.org>
4 * Copyright 2001-2006 Ian Kent <raven@themaw.net> 5 * Copyright 2001-2006 Ian Kent <raven@themaw.net>
5 *
6 * This file is part of the Linux kernel and is made available under
7 * the terms of the GNU General Public License, version 2, or at your
8 * option, any later version, incorporated herein by reference.
9 */ 6 */
10 7
11#include <linux/capability.h> 8#include <linux/capability.h>
diff --git a/fs/autofs/symlink.c b/fs/autofs/symlink.c
index aad3902c0cc1..7ac67dc76039 100644
--- a/fs/autofs/symlink.c
+++ b/fs/autofs/symlink.c
@@ -1,9 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright 1997-1998 Transmeta Corporation -- All Rights Reserved 3 * Copyright 1997-1998 Transmeta Corporation -- All Rights Reserved
3 *
4 * This file is part of the Linux kernel and is made available under
5 * the terms of the GNU General Public License, version 2, or at your
6 * option, any later version, incorporated herein by reference.
7 */ 4 */
8 5
9#include "autofs_i.h" 6#include "autofs_i.h"
diff --git a/fs/autofs/waitq.c b/fs/autofs/waitq.c
index 15a3e31d0904..b04c528b19d3 100644
--- a/fs/autofs/waitq.c
+++ b/fs/autofs/waitq.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright 1997-1998 Transmeta Corporation -- All Rights Reserved 3 * Copyright 1997-1998 Transmeta Corporation -- All Rights Reserved
3 * Copyright 2001-2006 Ian Kent <raven@themaw.net> 4 * Copyright 2001-2006 Ian Kent <raven@themaw.net>
4 *
5 * This file is part of the Linux kernel and is made available under
6 * the terms of the GNU General Public License, version 2, or at your
7 * option, any later version, incorporated herein by reference.
8 */ 5 */
9 6
10#include <linux/sched/signal.h> 7#include <linux/sched/signal.h>
diff --git a/fs/befs/Kconfig b/fs/befs/Kconfig
index edc5cc2aefad..9550b6462b81 100644
--- a/fs/befs/Kconfig
+++ b/fs/befs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config BEFS_FS 2config BEFS_FS
2 tristate "BeOS file system (BeFS) support (read only)" 3 tristate "BeOS file system (BeFS) support (read only)"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/befs/Makefile b/fs/befs/Makefile
index 8b9f66642a83..6c9c3cbc556e 100644
--- a/fs/befs/Makefile
+++ b/fs/befs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the linux BeOS filesystem routines. 3# Makefile for the linux BeOS filesystem routines.
3# 4#
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c
index e273850c95af..462d096ff3e9 100644
--- a/fs/befs/linuxvfs.c
+++ b/fs/befs/linuxvfs.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/befs/linuxvfs.c 3 * linux/fs/befs/linuxvfs.c
3 * 4 *
diff --git a/fs/bfs/Kconfig b/fs/bfs/Kconfig
index 3728a6479c64..3e1247f07913 100644
--- a/fs/bfs/Kconfig
+++ b/fs/bfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config BFS_FS 2config BFS_FS
2 tristate "BFS file system support" 3 tristate "BFS file system support"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/bfs/Makefile b/fs/bfs/Makefile
index c787b36d940c..2b6bc5eb4de9 100644
--- a/fs/bfs/Makefile
+++ b/fs/bfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for BFS filesystem. 3# Makefile for BFS filesystem.
3# 4#
diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c
index dc0cd2aa3d65..5e97bed073d7 100644
--- a/fs/bfs/inode.c
+++ b/fs/bfs/inode.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/bfs/inode.c 3 * fs/bfs/inode.c
3 * BFS superblock and inode operations. 4 * BFS superblock and inode operations.
diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c
index 1fefd87eb4b4..8e8346a81723 100644
--- a/fs/binfmt_aout.c
+++ b/fs/binfmt_aout.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/binfmt_aout.c 3 * linux/fs/binfmt_aout.c
3 * 4 *
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index fa9e99a962e0..8264b468f283 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/binfmt_elf.c 3 * linux/fs/binfmt_elf.c
3 * 4 *
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
index b53bb3729ac1..d86ebd0dcc3d 100644
--- a/fs/binfmt_elf_fdpic.c
+++ b/fs/binfmt_elf_fdpic.c
@@ -1,13 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* binfmt_elf_fdpic.c: FDPIC ELF binary format 2/* binfmt_elf_fdpic.c: FDPIC ELF binary format
2 * 3 *
3 * Copyright (C) 2003, 2004, 2006 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2003, 2004, 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 * Derived from binfmt_elf.c 6 * Derived from binfmt_elf.c
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version
10 * 2 of the License, or (at your option) any later version.
11 */ 7 */
12 8
13#include <linux/module.h> 9#include <linux/module.h>
diff --git a/fs/binfmt_em86.c b/fs/binfmt_em86.c
index dd2d3f0cd55d..466497860c62 100644
--- a/fs/binfmt_em86.c
+++ b/fs/binfmt_em86.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/binfmt_em86.c 3 * linux/fs/binfmt_em86.c
3 * 4 *
diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c
index 82a48e830018..e4b59e76afb0 100644
--- a/fs/binfmt_flat.c
+++ b/fs/binfmt_flat.c
@@ -856,9 +856,14 @@ err:
856 856
857static int load_flat_shared_library(int id, struct lib_info *libs) 857static int load_flat_shared_library(int id, struct lib_info *libs)
858{ 858{
859 /*
860 * This is a fake bprm struct; only the members "buf", "file" and
861 * "filename" are actually used.
862 */
859 struct linux_binprm bprm; 863 struct linux_binprm bprm;
860 int res; 864 int res;
861 char buf[16]; 865 char buf[16];
866 loff_t pos = 0;
862 867
863 memset(&bprm, 0, sizeof(bprm)); 868 memset(&bprm, 0, sizeof(bprm));
864 869
@@ -872,25 +877,11 @@ static int load_flat_shared_library(int id, struct lib_info *libs)
872 if (IS_ERR(bprm.file)) 877 if (IS_ERR(bprm.file))
873 return res; 878 return res;
874 879
875 bprm.cred = prepare_exec_creds(); 880 res = kernel_read(bprm.file, bprm.buf, BINPRM_BUF_SIZE, &pos);
876 res = -ENOMEM;
877 if (!bprm.cred)
878 goto out;
879
880 /* We don't really care about recalculating credentials at this point
881 * as we're past the point of no return and are dealing with shared
882 * libraries.
883 */
884 bprm.called_set_creds = 1;
885 881
886 res = prepare_binprm(&bprm); 882 if (res >= 0)
887
888 if (!res)
889 res = load_flat_file(&bprm, libs, id, NULL); 883 res = load_flat_file(&bprm, libs, id, NULL);
890 884
891 abort_creds(bprm.cred);
892
893out:
894 allow_write_access(bprm.file); 885 allow_write_access(bprm.file);
895 fput(bprm.file); 886 fput(bprm.file);
896 887
diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c
index aa4a7a23ff99..b8e145552ec7 100644
--- a/fs/binfmt_misc.c
+++ b/fs/binfmt_misc.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * binfmt_misc.c 3 * binfmt_misc.c
3 * 4 *
diff --git a/fs/binfmt_script.c b/fs/binfmt_script.c
index e996174cbfc0..e9e6a6f4a35f 100644
--- a/fs/binfmt_script.c
+++ b/fs/binfmt_script.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/binfmt_script.c 3 * linux/fs/binfmt_script.c
3 * 4 *
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 0f7552a87d54..749f5984425d 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/block_dev.c 3 * linux/fs/block_dev.c
3 * 4 *
@@ -1405,20 +1406,27 @@ void check_disk_size_change(struct gendisk *disk, struct block_device *bdev,
1405 */ 1406 */
1406int revalidate_disk(struct gendisk *disk) 1407int revalidate_disk(struct gendisk *disk)
1407{ 1408{
1408 struct block_device *bdev;
1409 int ret = 0; 1409 int ret = 0;
1410 1410
1411 if (disk->fops->revalidate_disk) 1411 if (disk->fops->revalidate_disk)
1412 ret = disk->fops->revalidate_disk(disk); 1412 ret = disk->fops->revalidate_disk(disk);
1413 bdev = bdget_disk(disk, 0);
1414 if (!bdev)
1415 return ret;
1416 1413
1417 mutex_lock(&bdev->bd_mutex); 1414 /*
1418 check_disk_size_change(disk, bdev, ret == 0); 1415 * Hidden disks don't have associated bdev so there's no point in
1419 bdev->bd_invalidated = 0; 1416 * revalidating it.
1420 mutex_unlock(&bdev->bd_mutex); 1417 */
1421 bdput(bdev); 1418 if (!(disk->flags & GENHD_FL_HIDDEN)) {
1419 struct block_device *bdev = bdget_disk(disk, 0);
1420
1421 if (!bdev)
1422 return ret;
1423
1424 mutex_lock(&bdev->bd_mutex);
1425 check_disk_size_change(disk, bdev, ret == 0);
1426 bdev->bd_invalidated = 0;
1427 mutex_unlock(&bdev->bd_mutex);
1428 bdput(bdev);
1429 }
1422 return ret; 1430 return ret;
1423} 1431}
1424EXPORT_SYMBOL(revalidate_disk); 1432EXPORT_SYMBOL(revalidate_disk);
diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
index daf7908d1e35..84dd4a8980c5 100644
--- a/fs/btrfs/compression.c
+++ b/fs/btrfs/compression.c
@@ -1008,6 +1008,7 @@ int btrfs_compress_pages(unsigned int type_level, struct address_space *mapping,
1008 struct list_head *workspace; 1008 struct list_head *workspace;
1009 int ret; 1009 int ret;
1010 1010
1011 level = btrfs_compress_op[type]->set_level(level);
1011 workspace = get_workspace(type, level); 1012 workspace = get_workspace(type, level);
1012 ret = btrfs_compress_op[type]->compress_pages(workspace, mapping, 1013 ret = btrfs_compress_op[type]->compress_pages(workspace, mapping,
1013 start, pages, 1014 start, pages,
diff --git a/fs/btrfs/dev-replace.c b/fs/btrfs/dev-replace.c
index 55c15f31d00d..ee0989c7e3a9 100644
--- a/fs/btrfs/dev-replace.c
+++ b/fs/btrfs/dev-replace.c
@@ -603,17 +603,33 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
603 } 603 }
604 btrfs_wait_ordered_roots(fs_info, U64_MAX, 0, (u64)-1); 604 btrfs_wait_ordered_roots(fs_info, U64_MAX, 0, (u64)-1);
605 605
606 trans = btrfs_start_transaction(root, 0); 606 /*
607 if (IS_ERR(trans)) { 607 * We have to use this loop approach because at this point src_device
608 mutex_unlock(&dev_replace->lock_finishing_cancel_unmount); 608 * has to be available for transaction commit to complete, yet new
609 return PTR_ERR(trans); 609 * chunks shouldn't be allocated on the device.
610 */
611 while (1) {
612 trans = btrfs_start_transaction(root, 0);
613 if (IS_ERR(trans)) {
614 mutex_unlock(&dev_replace->lock_finishing_cancel_unmount);
615 return PTR_ERR(trans);
616 }
617 ret = btrfs_commit_transaction(trans);
618 WARN_ON(ret);
619
620 /* Prevent write_all_supers() during the finishing procedure */
621 mutex_lock(&fs_info->fs_devices->device_list_mutex);
622 /* Prevent new chunks being allocated on the source device */
623 mutex_lock(&fs_info->chunk_mutex);
624
625 if (!list_empty(&src_device->post_commit_list)) {
626 mutex_unlock(&fs_info->fs_devices->device_list_mutex);
627 mutex_unlock(&fs_info->chunk_mutex);
628 } else {
629 break;
630 }
610 } 631 }
611 ret = btrfs_commit_transaction(trans);
612 WARN_ON(ret);
613 632
614 /* keep away write_all_supers() during the finishing procedure */
615 mutex_lock(&fs_info->fs_devices->device_list_mutex);
616 mutex_lock(&fs_info->chunk_mutex);
617 down_write(&dev_replace->rwsem); 633 down_write(&dev_replace->rwsem);
618 dev_replace->replace_state = 634 dev_replace->replace_state =
619 scrub_ret ? BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED 635 scrub_ret ? BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED
@@ -662,7 +678,6 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
662 btrfs_device_set_disk_total_bytes(tgt_device, 678 btrfs_device_set_disk_total_bytes(tgt_device,
663 src_device->disk_total_bytes); 679 src_device->disk_total_bytes);
664 btrfs_device_set_bytes_used(tgt_device, src_device->bytes_used); 680 btrfs_device_set_bytes_used(tgt_device, src_device->bytes_used);
665 ASSERT(list_empty(&src_device->post_commit_list));
666 tgt_device->commit_total_bytes = src_device->commit_total_bytes; 681 tgt_device->commit_total_bytes = src_device->commit_total_bytes;
667 tgt_device->commit_bytes_used = src_device->bytes_used; 682 tgt_device->commit_bytes_used = src_device->bytes_used;
668 683
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index f79e477a378e..5faf057f6f37 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -757,12 +757,14 @@ static struct btrfs_space_info *__find_space_info(struct btrfs_fs_info *info,
757} 757}
758 758
759static void add_pinned_bytes(struct btrfs_fs_info *fs_info, 759static void add_pinned_bytes(struct btrfs_fs_info *fs_info,
760 struct btrfs_ref *ref) 760 struct btrfs_ref *ref, int sign)
761{ 761{
762 struct btrfs_space_info *space_info; 762 struct btrfs_space_info *space_info;
763 s64 num_bytes = -ref->len; 763 s64 num_bytes;
764 u64 flags; 764 u64 flags;
765 765
766 ASSERT(sign == 1 || sign == -1);
767 num_bytes = sign * ref->len;
766 if (ref->type == BTRFS_REF_METADATA) { 768 if (ref->type == BTRFS_REF_METADATA) {
767 if (ref->tree_ref.root == BTRFS_CHUNK_TREE_OBJECTID) 769 if (ref->tree_ref.root == BTRFS_CHUNK_TREE_OBJECTID)
768 flags = BTRFS_BLOCK_GROUP_SYSTEM; 770 flags = BTRFS_BLOCK_GROUP_SYSTEM;
@@ -2063,7 +2065,7 @@ int btrfs_inc_extent_ref(struct btrfs_trans_handle *trans,
2063 btrfs_ref_tree_mod(fs_info, generic_ref); 2065 btrfs_ref_tree_mod(fs_info, generic_ref);
2064 2066
2065 if (ret == 0 && old_ref_mod < 0 && new_ref_mod >= 0) 2067 if (ret == 0 && old_ref_mod < 0 && new_ref_mod >= 0)
2066 add_pinned_bytes(fs_info, generic_ref); 2068 add_pinned_bytes(fs_info, generic_ref, -1);
2067 2069
2068 return ret; 2070 return ret;
2069} 2071}
@@ -3882,8 +3884,7 @@ static int create_space_info(struct btrfs_fs_info *info, u64 flags)
3882 info->space_info_kobj, "%s", 3884 info->space_info_kobj, "%s",
3883 alloc_name(space_info->flags)); 3885 alloc_name(space_info->flags));
3884 if (ret) { 3886 if (ret) {
3885 percpu_counter_destroy(&space_info->total_bytes_pinned); 3887 kobject_put(&space_info->kobj);
3886 kfree(space_info);
3887 return ret; 3888 return ret;
3888 } 3889 }
3889 3890
@@ -7190,7 +7191,7 @@ void btrfs_free_tree_block(struct btrfs_trans_handle *trans,
7190 } 7191 }
7191out: 7192out:
7192 if (pin) 7193 if (pin)
7193 add_pinned_bytes(fs_info, &generic_ref); 7194 add_pinned_bytes(fs_info, &generic_ref, 1);
7194 7195
7195 if (last_ref) { 7196 if (last_ref) {
7196 /* 7197 /*
@@ -7238,7 +7239,7 @@ int btrfs_free_extent(struct btrfs_trans_handle *trans, struct btrfs_ref *ref)
7238 btrfs_ref_tree_mod(fs_info, ref); 7239 btrfs_ref_tree_mod(fs_info, ref);
7239 7240
7240 if (ret == 0 && old_ref_mod >= 0 && new_ref_mod < 0) 7241 if (ret == 0 && old_ref_mod >= 0 && new_ref_mod < 0)
7241 add_pinned_bytes(fs_info, ref); 7242 add_pinned_bytes(fs_info, ref, 1);
7242 7243
7243 return ret; 7244 return ret;
7244} 7245}
@@ -10830,17 +10831,6 @@ int btrfs_remove_block_group(struct btrfs_trans_handle *trans,
10830 remove_em = (atomic_read(&block_group->trimming) == 0); 10831 remove_em = (atomic_read(&block_group->trimming) == 0);
10831 spin_unlock(&block_group->lock); 10832 spin_unlock(&block_group->lock);
10832 10833
10833 if (remove_em) {
10834 struct extent_map_tree *em_tree;
10835
10836 em_tree = &fs_info->mapping_tree.map_tree;
10837 write_lock(&em_tree->lock);
10838 remove_extent_mapping(em_tree, em);
10839 write_unlock(&em_tree->lock);
10840 /* once for the tree */
10841 free_extent_map(em);
10842 }
10843
10844 mutex_unlock(&fs_info->chunk_mutex); 10834 mutex_unlock(&fs_info->chunk_mutex);
10845 10835
10846 ret = remove_block_group_free_space(trans, block_group); 10836 ret = remove_block_group_free_space(trans, block_group);
@@ -10857,6 +10847,19 @@ int btrfs_remove_block_group(struct btrfs_trans_handle *trans,
10857 goto out; 10847 goto out;
10858 10848
10859 ret = btrfs_del_item(trans, root, path); 10849 ret = btrfs_del_item(trans, root, path);
10850 if (ret)
10851 goto out;
10852
10853 if (remove_em) {
10854 struct extent_map_tree *em_tree;
10855
10856 em_tree = &fs_info->mapping_tree.map_tree;
10857 write_lock(&em_tree->lock);
10858 remove_extent_mapping(em_tree, em);
10859 write_unlock(&em_tree->lock);
10860 /* once for the tree */
10861 free_extent_map(em);
10862 }
10860out: 10863out:
10861 if (remove_rsv) 10864 if (remove_rsv)
10862 btrfs_delayed_refs_rsv_release(fs_info, 1); 10865 btrfs_delayed_refs_rsv_release(fs_info, 1);
@@ -11136,13 +11139,11 @@ int btrfs_error_unpin_extent_range(struct btrfs_fs_info *fs_info,
11136 * it while performing the free space search since we have already 11139 * it while performing the free space search since we have already
11137 * held back allocations. 11140 * held back allocations.
11138 */ 11141 */
11139static int btrfs_trim_free_extents(struct btrfs_device *device, 11142static int btrfs_trim_free_extents(struct btrfs_device *device, u64 *trimmed)
11140 struct fstrim_range *range, u64 *trimmed)
11141{ 11143{
11142 u64 start, len = 0, end = 0; 11144 u64 start = SZ_1M, len = 0, end = 0;
11143 int ret; 11145 int ret;
11144 11146
11145 start = max_t(u64, range->start, SZ_1M);
11146 *trimmed = 0; 11147 *trimmed = 0;
11147 11148
11148 /* Discard not supported = nothing to do. */ 11149 /* Discard not supported = nothing to do. */
@@ -11185,22 +11186,6 @@ static int btrfs_trim_free_extents(struct btrfs_device *device,
11185 break; 11186 break;
11186 } 11187 }
11187 11188
11188 /* Keep going until we satisfy minlen or reach end of space */
11189 if (len < range->minlen) {
11190 mutex_unlock(&fs_info->chunk_mutex);
11191 start += len;
11192 continue;
11193 }
11194
11195 /* If we are out of the passed range break */
11196 if (start > range->start + range->len - 1) {
11197 mutex_unlock(&fs_info->chunk_mutex);
11198 break;
11199 }
11200
11201 start = max(range->start, start);
11202 len = min(range->len, len);
11203
11204 ret = btrfs_issue_discard(device->bdev, start, len, 11189 ret = btrfs_issue_discard(device->bdev, start, len,
11205 &bytes); 11190 &bytes);
11206 if (!ret) 11191 if (!ret)
@@ -11215,10 +11200,6 @@ static int btrfs_trim_free_extents(struct btrfs_device *device,
11215 start += len; 11200 start += len;
11216 *trimmed += bytes; 11201 *trimmed += bytes;
11217 11202
11218 /* We've trimmed enough */
11219 if (*trimmed >= range->len)
11220 break;
11221
11222 if (fatal_signal_pending(current)) { 11203 if (fatal_signal_pending(current)) {
11223 ret = -ERESTARTSYS; 11204 ret = -ERESTARTSYS;
11224 break; 11205 break;
@@ -11302,7 +11283,7 @@ int btrfs_trim_fs(struct btrfs_fs_info *fs_info, struct fstrim_range *range)
11302 mutex_lock(&fs_info->fs_devices->device_list_mutex); 11283 mutex_lock(&fs_info->fs_devices->device_list_mutex);
11303 devices = &fs_info->fs_devices->devices; 11284 devices = &fs_info->fs_devices->devices;
11304 list_for_each_entry(device, devices, dev_list) { 11285 list_for_each_entry(device, devices, dev_list) {
11305 ret = btrfs_trim_free_extents(device, range, &group_trimmed); 11286 ret = btrfs_trim_free_extents(device, &group_trimmed);
11306 if (ret) { 11287 if (ret) {
11307 dev_failed++; 11288 dev_failed++;
11308 dev_ret = ret; 11289 dev_ret = ret;
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 7e85dca0e6f2..89f5be2bfb43 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -2068,6 +2068,18 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
2068 u64 len; 2068 u64 len;
2069 2069
2070 /* 2070 /*
2071 * If the inode needs a full sync, make sure we use a full range to
2072 * avoid log tree corruption, due to hole detection racing with ordered
2073 * extent completion for adjacent ranges, and assertion failures during
2074 * hole detection.
2075 */
2076 if (test_bit(BTRFS_INODE_NEEDS_FULL_SYNC,
2077 &BTRFS_I(inode)->runtime_flags)) {
2078 start = 0;
2079 end = LLONG_MAX;
2080 }
2081
2082 /*
2071 * The range length can be represented by u64, we have to do the typecasts 2083 * The range length can be represented by u64, we have to do the typecasts
2072 * to avoid signed overflow if it's [0, LLONG_MAX] eg. from fsync() 2084 * to avoid signed overflow if it's [0, LLONG_MAX] eg. from fsync()
2073 */ 2085 */
@@ -2554,10 +2566,8 @@ static int btrfs_punch_hole(struct inode *inode, loff_t offset, loff_t len)
2554 2566
2555 ret = btrfs_punch_hole_lock_range(inode, lockstart, lockend, 2567 ret = btrfs_punch_hole_lock_range(inode, lockstart, lockend,
2556 &cached_state); 2568 &cached_state);
2557 if (ret) { 2569 if (ret)
2558 inode_unlock(inode);
2559 goto out_only_mutex; 2570 goto out_only_mutex;
2560 }
2561 2571
2562 path = btrfs_alloc_path(); 2572 path = btrfs_alloc_path();
2563 if (!path) { 2573 if (!path) {
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 9aba9660efe5..a2aabdb85226 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -6433,8 +6433,18 @@ int btrfs_add_link(struct btrfs_trans_handle *trans,
6433 btrfs_i_size_write(parent_inode, parent_inode->vfs_inode.i_size + 6433 btrfs_i_size_write(parent_inode, parent_inode->vfs_inode.i_size +
6434 name_len * 2); 6434 name_len * 2);
6435 inode_inc_iversion(&parent_inode->vfs_inode); 6435 inode_inc_iversion(&parent_inode->vfs_inode);
6436 parent_inode->vfs_inode.i_mtime = parent_inode->vfs_inode.i_ctime = 6436 /*
6437 current_time(&parent_inode->vfs_inode); 6437 * If we are replaying a log tree, we do not want to update the mtime
6438 * and ctime of the parent directory with the current time, since the
6439 * log replay procedure is responsible for setting them to their correct
6440 * values (the ones it had when the fsync was done).
6441 */
6442 if (!test_bit(BTRFS_FS_LOG_RECOVERING, &root->fs_info->flags)) {
6443 struct timespec64 now = current_time(&parent_inode->vfs_inode);
6444
6445 parent_inode->vfs_inode.i_mtime = now;
6446 parent_inode->vfs_inode.i_ctime = now;
6447 }
6438 ret = btrfs_update_inode(trans, root, &parent_inode->vfs_inode); 6448 ret = btrfs_update_inode(trans, root, &parent_inode->vfs_inode);
6439 if (ret) 6449 if (ret)
6440 btrfs_abort_transaction(trans, ret); 6450 btrfs_abort_transaction(trans, ret);
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 6dafa857bbb9..2a1be0d1a698 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -312,8 +312,6 @@ static int btrfs_ioctl_setflags(struct file *file, void __user *arg)
312 btrfs_abort_transaction(trans, ret); 312 btrfs_abort_transaction(trans, ret);
313 goto out_end_trans; 313 goto out_end_trans;
314 } 314 }
315 set_bit(BTRFS_INODE_COPY_EVERYTHING,
316 &BTRFS_I(inode)->runtime_flags);
317 } else { 315 } else {
318 ret = btrfs_set_prop(trans, inode, "btrfs.compression", NULL, 316 ret = btrfs_set_prop(trans, inode, "btrfs.compression", NULL,
319 0, 0); 317 0, 0);
diff --git a/fs/btrfs/props.c b/fs/btrfs/props.c
index ca2716917e37..a9e2e66152ee 100644
--- a/fs/btrfs/props.c
+++ b/fs/btrfs/props.c
@@ -332,6 +332,7 @@ static int inherit_props(struct btrfs_trans_handle *trans,
332 struct btrfs_fs_info *fs_info = root->fs_info; 332 struct btrfs_fs_info *fs_info = root->fs_info;
333 int ret; 333 int ret;
334 int i; 334 int i;
335 bool need_reserve = false;
335 336
336 if (!test_bit(BTRFS_INODE_HAS_PROPS, 337 if (!test_bit(BTRFS_INODE_HAS_PROPS,
337 &BTRFS_I(parent)->runtime_flags)) 338 &BTRFS_I(parent)->runtime_flags))
@@ -357,11 +358,20 @@ static int inherit_props(struct btrfs_trans_handle *trans,
357 if (ret) 358 if (ret)
358 continue; 359 continue;
359 360
360 num_bytes = btrfs_calc_trans_metadata_size(fs_info, 1); 361 /*
361 ret = btrfs_block_rsv_add(root, trans->block_rsv, 362 * Currently callers should be reserving 1 item for properties,
362 num_bytes, BTRFS_RESERVE_NO_FLUSH); 363 * since we only have 1 property that we currently support. If
363 if (ret) 364 * we add more in the future we need to try and reserve more
364 return ret; 365 * space for them. But we should also revisit how we do space
366 * reservations if we do add more properties in the future.
367 */
368 if (need_reserve) {
369 num_bytes = btrfs_calc_trans_metadata_size(fs_info, 1);
370 ret = btrfs_block_rsv_add(root, trans->block_rsv,
371 num_bytes, BTRFS_RESERVE_NO_FLUSH);
372 if (ret)
373 return ret;
374 }
365 375
366 ret = btrfs_setxattr(trans, inode, h->xattr_name, value, 376 ret = btrfs_setxattr(trans, inode, h->xattr_name, value,
367 strlen(value), 0); 377 strlen(value), 0);
@@ -375,9 +385,13 @@ static int inherit_props(struct btrfs_trans_handle *trans,
375 &BTRFS_I(inode)->runtime_flags); 385 &BTRFS_I(inode)->runtime_flags);
376 } 386 }
377 387
378 btrfs_block_rsv_release(fs_info, trans->block_rsv, num_bytes); 388 if (need_reserve) {
379 if (ret) 389 btrfs_block_rsv_release(fs_info, trans->block_rsv,
380 return ret; 390 num_bytes);
391 if (ret)
392 return ret;
393 }
394 need_reserve = true;
381 } 395 }
382 396
383 return 0; 397 return 0;
diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
index 2f708f2c4e67..3e6ffbbd8b0a 100644
--- a/fs/btrfs/qgroup.c
+++ b/fs/btrfs/qgroup.c
@@ -3830,7 +3830,13 @@ int btrfs_qgroup_add_swapped_blocks(struct btrfs_trans_handle *trans,
3830 subvol_slot); 3830 subvol_slot);
3831 block->last_snapshot = last_snapshot; 3831 block->last_snapshot = last_snapshot;
3832 block->level = level; 3832 block->level = level;
3833 if (bg->flags & BTRFS_BLOCK_GROUP_DATA) 3833
3834 /*
3835 * If we have bg == NULL, we're called from btrfs_recover_relocation(),
3836 * no one else can modify tree blocks thus we qgroup will not change
3837 * no matter the value of trace_leaf.
3838 */
3839 if (bg && bg->flags & BTRFS_BLOCK_GROUP_DATA)
3834 block->trace_leaf = true; 3840 block->trace_leaf = true;
3835 else 3841 else
3836 block->trace_leaf = false; 3842 block->trace_leaf = false;
diff --git a/fs/btrfs/reada.c b/fs/btrfs/reada.c
index 10d9589001a9..bb5bd49573b4 100644
--- a/fs/btrfs/reada.c
+++ b/fs/btrfs/reada.c
@@ -747,6 +747,7 @@ static void __reada_start_machine(struct btrfs_fs_info *fs_info)
747 u64 total = 0; 747 u64 total = 0;
748 int i; 748 int i;
749 749
750again:
750 do { 751 do {
751 enqueued = 0; 752 enqueued = 0;
752 mutex_lock(&fs_devices->device_list_mutex); 753 mutex_lock(&fs_devices->device_list_mutex);
@@ -758,6 +759,10 @@ static void __reada_start_machine(struct btrfs_fs_info *fs_info)
758 mutex_unlock(&fs_devices->device_list_mutex); 759 mutex_unlock(&fs_devices->device_list_mutex);
759 total += enqueued; 760 total += enqueued;
760 } while (enqueued && total < 10000); 761 } while (enqueued && total < 10000);
762 if (fs_devices->seed) {
763 fs_devices = fs_devices->seed;
764 goto again;
765 }
761 766
762 if (enqueued == 0) 767 if (enqueued == 0)
763 return; 768 return;
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c
index a459ecddcce4..22a3c69864fa 100644
--- a/fs/btrfs/relocation.c
+++ b/fs/btrfs/relocation.c
@@ -2177,22 +2177,30 @@ static int clean_dirty_subvols(struct reloc_control *rc)
2177 struct btrfs_root *root; 2177 struct btrfs_root *root;
2178 struct btrfs_root *next; 2178 struct btrfs_root *next;
2179 int ret = 0; 2179 int ret = 0;
2180 int ret2;
2180 2181
2181 list_for_each_entry_safe(root, next, &rc->dirty_subvol_roots, 2182 list_for_each_entry_safe(root, next, &rc->dirty_subvol_roots,
2182 reloc_dirty_list) { 2183 reloc_dirty_list) {
2183 struct btrfs_root *reloc_root = root->reloc_root; 2184 if (root->root_key.objectid != BTRFS_TREE_RELOC_OBJECTID) {
2185 /* Merged subvolume, cleanup its reloc root */
2186 struct btrfs_root *reloc_root = root->reloc_root;
2184 2187
2185 clear_bit(BTRFS_ROOT_DEAD_RELOC_TREE, &root->state); 2188 clear_bit(BTRFS_ROOT_DEAD_RELOC_TREE, &root->state);
2186 list_del_init(&root->reloc_dirty_list); 2189 list_del_init(&root->reloc_dirty_list);
2187 root->reloc_root = NULL; 2190 root->reloc_root = NULL;
2188 if (reloc_root) { 2191 if (reloc_root) {
2189 int ret2;
2190 2192
2191 ret2 = btrfs_drop_snapshot(reloc_root, NULL, 0, 1); 2193 ret2 = btrfs_drop_snapshot(reloc_root, NULL, 0, 1);
2194 if (ret2 < 0 && !ret)
2195 ret = ret2;
2196 }
2197 btrfs_put_fs_root(root);
2198 } else {
2199 /* Orphan reloc tree, just clean it up */
2200 ret2 = btrfs_drop_snapshot(root, NULL, 0, 1);
2192 if (ret2 < 0 && !ret) 2201 if (ret2 < 0 && !ret)
2193 ret = ret2; 2202 ret = ret2;
2194 } 2203 }
2195 btrfs_put_fs_root(root);
2196 } 2204 }
2197 return ret; 2205 return ret;
2198} 2206}
@@ -2480,6 +2488,9 @@ again:
2480 } 2488 }
2481 } else { 2489 } else {
2482 list_del_init(&reloc_root->root_list); 2490 list_del_init(&reloc_root->root_list);
2491 /* Don't forget to queue this reloc root for cleanup */
2492 list_add_tail(&reloc_root->reloc_dirty_list,
2493 &rc->dirty_subvol_roots);
2483 } 2494 }
2484 } 2495 }
2485 2496
diff --git a/fs/btrfs/root-tree.c b/fs/btrfs/root-tree.c
index 1b9a5d0de139..22124122728c 100644
--- a/fs/btrfs/root-tree.c
+++ b/fs/btrfs/root-tree.c
@@ -132,10 +132,8 @@ int btrfs_update_root(struct btrfs_trans_handle *trans, struct btrfs_root
132 return -ENOMEM; 132 return -ENOMEM;
133 133
134 ret = btrfs_search_slot(trans, root, key, path, 0, 1); 134 ret = btrfs_search_slot(trans, root, key, path, 0, 1);
135 if (ret < 0) { 135 if (ret < 0)
136 btrfs_abort_transaction(trans, ret);
137 goto out; 136 goto out;
138 }
139 137
140 if (ret > 0) { 138 if (ret > 0) {
141 btrfs_crit(fs_info, 139 btrfs_crit(fs_info,
diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
index dd38dfe174df..f7fe4770f0e5 100644
--- a/fs/btrfs/send.c
+++ b/fs/btrfs/send.c
@@ -4999,6 +4999,12 @@ static int send_hole(struct send_ctx *sctx, u64 end)
4999 if (offset >= sctx->cur_inode_size) 4999 if (offset >= sctx->cur_inode_size)
5000 return 0; 5000 return 0;
5001 5001
5002 /*
5003 * Don't go beyond the inode's i_size due to prealloc extents that start
5004 * after the i_size.
5005 */
5006 end = min_t(u64, end, sctx->cur_inode_size);
5007
5002 if (sctx->flags & BTRFS_SEND_FLAG_NO_FILE_DATA) 5008 if (sctx->flags & BTRFS_SEND_FLAG_NO_FILE_DATA)
5003 return send_update_extent(sctx, offset, end - offset); 5009 return send_update_extent(sctx, offset, end - offset);
5004 5010
@@ -5218,10 +5224,50 @@ static int clone_range(struct send_ctx *sctx,
5218 clone_len = min_t(u64, ext_len, len); 5224 clone_len = min_t(u64, ext_len, len);
5219 5225
5220 if (btrfs_file_extent_disk_bytenr(leaf, ei) == disk_byte && 5226 if (btrfs_file_extent_disk_bytenr(leaf, ei) == disk_byte &&
5221 clone_data_offset == data_offset) 5227 clone_data_offset == data_offset) {
5222 ret = send_clone(sctx, offset, clone_len, clone_root); 5228 const u64 src_end = clone_root->offset + clone_len;
5223 else 5229 const u64 sectorsize = SZ_64K;
5230
5231 /*
5232 * We can't clone the last block, when its size is not
5233 * sector size aligned, into the middle of a file. If we
5234 * do so, the receiver will get a failure (-EINVAL) when
5235 * trying to clone or will silently corrupt the data in
5236 * the destination file if it's on a kernel without the
5237 * fix introduced by commit ac765f83f1397646
5238 * ("Btrfs: fix data corruption due to cloning of eof
5239 * block).
5240 *
5241 * So issue a clone of the aligned down range plus a
5242 * regular write for the eof block, if we hit that case.
5243 *
5244 * Also, we use the maximum possible sector size, 64K,
5245 * because we don't know what's the sector size of the
5246 * filesystem that receives the stream, so we have to
5247 * assume the largest possible sector size.
5248 */
5249 if (src_end == clone_src_i_size &&
5250 !IS_ALIGNED(src_end, sectorsize) &&
5251 offset + clone_len < sctx->cur_inode_size) {
5252 u64 slen;
5253
5254 slen = ALIGN_DOWN(src_end - clone_root->offset,
5255 sectorsize);
5256 if (slen > 0) {
5257 ret = send_clone(sctx, offset, slen,
5258 clone_root);
5259 if (ret < 0)
5260 goto out;
5261 }
5262 ret = send_extent_data(sctx, offset + slen,
5263 clone_len - slen);
5264 } else {
5265 ret = send_clone(sctx, offset, clone_len,
5266 clone_root);
5267 }
5268 } else {
5224 ret = send_extent_data(sctx, offset, clone_len); 5269 ret = send_extent_data(sctx, offset, clone_len);
5270 }
5225 5271
5226 if (ret < 0) 5272 if (ret < 0)
5227 goto out; 5273 goto out;
diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
index 5a5930e3d32b..2f078b77fe14 100644
--- a/fs/btrfs/sysfs.c
+++ b/fs/btrfs/sysfs.c
@@ -825,7 +825,12 @@ int btrfs_sysfs_add_fsid(struct btrfs_fs_devices *fs_devs,
825 fs_devs->fsid_kobj.kset = btrfs_kset; 825 fs_devs->fsid_kobj.kset = btrfs_kset;
826 error = kobject_init_and_add(&fs_devs->fsid_kobj, 826 error = kobject_init_and_add(&fs_devs->fsid_kobj,
827 &btrfs_ktype, parent, "%pU", fs_devs->fsid); 827 &btrfs_ktype, parent, "%pU", fs_devs->fsid);
828 return error; 828 if (error) {
829 kobject_put(&fs_devs->fsid_kobj);
830 return error;
831 }
832
833 return 0;
829} 834}
830 835
831int btrfs_sysfs_add_mounted(struct btrfs_fs_info *fs_info) 836int btrfs_sysfs_add_mounted(struct btrfs_fs_info *fs_info)
diff --git a/fs/btrfs/tree-checker.c b/fs/btrfs/tree-checker.c
index 748cd1598255..96fce4bef4e7 100644
--- a/fs/btrfs/tree-checker.c
+++ b/fs/btrfs/tree-checker.c
@@ -107,8 +107,26 @@ static void file_extent_err(const struct extent_buffer *eb, int slot,
107 (!IS_ALIGNED(btrfs_file_extent_##name((leaf), (fi)), (alignment))); \ 107 (!IS_ALIGNED(btrfs_file_extent_##name((leaf), (fi)), (alignment))); \
108}) 108})
109 109
110static u64 file_extent_end(struct extent_buffer *leaf,
111 struct btrfs_key *key,
112 struct btrfs_file_extent_item *extent)
113{
114 u64 end;
115 u64 len;
116
117 if (btrfs_file_extent_type(leaf, extent) == BTRFS_FILE_EXTENT_INLINE) {
118 len = btrfs_file_extent_ram_bytes(leaf, extent);
119 end = ALIGN(key->offset + len, leaf->fs_info->sectorsize);
120 } else {
121 len = btrfs_file_extent_num_bytes(leaf, extent);
122 end = key->offset + len;
123 }
124 return end;
125}
126
110static int check_extent_data_item(struct extent_buffer *leaf, 127static int check_extent_data_item(struct extent_buffer *leaf,
111 struct btrfs_key *key, int slot) 128 struct btrfs_key *key, int slot,
129 struct btrfs_key *prev_key)
112{ 130{
113 struct btrfs_fs_info *fs_info = leaf->fs_info; 131 struct btrfs_fs_info *fs_info = leaf->fs_info;
114 struct btrfs_file_extent_item *fi; 132 struct btrfs_file_extent_item *fi;
@@ -188,6 +206,28 @@ static int check_extent_data_item(struct extent_buffer *leaf,
188 CHECK_FE_ALIGNED(leaf, slot, fi, offset, sectorsize) || 206 CHECK_FE_ALIGNED(leaf, slot, fi, offset, sectorsize) ||
189 CHECK_FE_ALIGNED(leaf, slot, fi, num_bytes, sectorsize)) 207 CHECK_FE_ALIGNED(leaf, slot, fi, num_bytes, sectorsize))
190 return -EUCLEAN; 208 return -EUCLEAN;
209
210 /*
211 * Check that no two consecutive file extent items, in the same leaf,
212 * present ranges that overlap each other.
213 */
214 if (slot > 0 &&
215 prev_key->objectid == key->objectid &&
216 prev_key->type == BTRFS_EXTENT_DATA_KEY) {
217 struct btrfs_file_extent_item *prev_fi;
218 u64 prev_end;
219
220 prev_fi = btrfs_item_ptr(leaf, slot - 1,
221 struct btrfs_file_extent_item);
222 prev_end = file_extent_end(leaf, prev_key, prev_fi);
223 if (prev_end > key->offset) {
224 file_extent_err(leaf, slot - 1,
225"file extent end range (%llu) goes beyond start offset (%llu) of the next file extent",
226 prev_end, key->offset);
227 return -EUCLEAN;
228 }
229 }
230
191 return 0; 231 return 0;
192} 232}
193 233
@@ -774,14 +814,15 @@ static int check_inode_item(struct extent_buffer *leaf,
774 * Common point to switch the item-specific validation. 814 * Common point to switch the item-specific validation.
775 */ 815 */
776static int check_leaf_item(struct extent_buffer *leaf, 816static int check_leaf_item(struct extent_buffer *leaf,
777 struct btrfs_key *key, int slot) 817 struct btrfs_key *key, int slot,
818 struct btrfs_key *prev_key)
778{ 819{
779 int ret = 0; 820 int ret = 0;
780 struct btrfs_chunk *chunk; 821 struct btrfs_chunk *chunk;
781 822
782 switch (key->type) { 823 switch (key->type) {
783 case BTRFS_EXTENT_DATA_KEY: 824 case BTRFS_EXTENT_DATA_KEY:
784 ret = check_extent_data_item(leaf, key, slot); 825 ret = check_extent_data_item(leaf, key, slot, prev_key);
785 break; 826 break;
786 case BTRFS_EXTENT_CSUM_KEY: 827 case BTRFS_EXTENT_CSUM_KEY:
787 ret = check_csum_item(leaf, key, slot); 828 ret = check_csum_item(leaf, key, slot);
@@ -928,7 +969,7 @@ static int check_leaf(struct extent_buffer *leaf, bool check_item_data)
928 * Check if the item size and content meet other 969 * Check if the item size and content meet other
929 * criteria 970 * criteria
930 */ 971 */
931 ret = check_leaf_item(leaf, &key, slot); 972 ret = check_leaf_item(leaf, &key, slot, &prev_key);
932 if (ret < 0) 973 if (ret < 0)
933 return ret; 974 return ret;
934 } 975 }
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 6adcd8a2c5c7..3fc8d854d7fb 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -3110,6 +3110,12 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans,
3110 log->log_transid = root->log_transid; 3110 log->log_transid = root->log_transid;
3111 root->log_start_pid = 0; 3111 root->log_start_pid = 0;
3112 /* 3112 /*
3113 * Update or create log root item under the root's log_mutex to prevent
3114 * races with concurrent log syncs that can lead to failure to update
3115 * log root item because it was not created yet.
3116 */
3117 ret = update_log_root(trans, log);
3118 /*
3113 * IO has been started, blocks of the log tree have WRITTEN flag set 3119 * IO has been started, blocks of the log tree have WRITTEN flag set
3114 * in their headers. new modifications of the log will be written to 3120 * in their headers. new modifications of the log will be written to
3115 * new positions. so it's safe to allow log writers to go in. 3121 * new positions. so it's safe to allow log writers to go in.
@@ -3128,8 +3134,6 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans,
3128 3134
3129 mutex_unlock(&log_root_tree->log_mutex); 3135 mutex_unlock(&log_root_tree->log_mutex);
3130 3136
3131 ret = update_log_root(trans, log);
3132
3133 mutex_lock(&log_root_tree->log_mutex); 3137 mutex_lock(&log_root_tree->log_mutex);
3134 if (atomic_dec_and_test(&log_root_tree->log_writers)) { 3138 if (atomic_dec_and_test(&log_root_tree->log_writers)) {
3135 /* atomic_dec_and_test implies a barrier */ 3139 /* atomic_dec_and_test implies a barrier */
@@ -4182,6 +4186,7 @@ fill_holes:
4182 *last_extent, 0, 4186 *last_extent, 0,
4183 0, len, 0, len, 4187 0, len, 0, len,
4184 0, 0, 0); 4188 0, 0, 0);
4189 *last_extent += len;
4185 } 4190 }
4186 } 4191 }
4187 } 4192 }
@@ -5477,7 +5482,6 @@ static noinline int check_parent_dirs_for_sync(struct btrfs_trans_handle *trans,
5477{ 5482{
5478 int ret = 0; 5483 int ret = 0;
5479 struct dentry *old_parent = NULL; 5484 struct dentry *old_parent = NULL;
5480 struct btrfs_inode *orig_inode = inode;
5481 5485
5482 /* 5486 /*
5483 * for regular files, if its inode is already on disk, we don't 5487 * for regular files, if its inode is already on disk, we don't
@@ -5497,16 +5501,6 @@ static noinline int check_parent_dirs_for_sync(struct btrfs_trans_handle *trans,
5497 } 5501 }
5498 5502
5499 while (1) { 5503 while (1) {
5500 /*
5501 * If we are logging a directory then we start with our inode,
5502 * not our parent's inode, so we need to skip setting the
5503 * logged_trans so that further down in the log code we don't
5504 * think this inode has already been logged.
5505 */
5506 if (inode != orig_inode)
5507 inode->logged_trans = trans->transid;
5508 smp_mb();
5509
5510 if (btrfs_must_commit_transaction(trans, inode)) { 5504 if (btrfs_must_commit_transaction(trans, inode)) {
5511 ret = 1; 5505 ret = 1;
5512 break; 5506 break;
@@ -6383,7 +6377,6 @@ void btrfs_record_unlink_dir(struct btrfs_trans_handle *trans,
6383 * if this directory was already logged any new 6377 * if this directory was already logged any new
6384 * names for this file/dir will get recorded 6378 * names for this file/dir will get recorded
6385 */ 6379 */
6386 smp_mb();
6387 if (dir->logged_trans == trans->transid) 6380 if (dir->logged_trans == trans->transid)
6388 return; 6381 return;
6389 6382
diff --git a/fs/btrfs/xattr.c b/fs/btrfs/xattr.c
index 78b6ba2029e8..95d9aebff2c4 100644
--- a/fs/btrfs/xattr.c
+++ b/fs/btrfs/xattr.c
@@ -213,6 +213,9 @@ int btrfs_setxattr(struct btrfs_trans_handle *trans, struct inode *inode,
213 } 213 }
214out: 214out:
215 btrfs_free_path(path); 215 btrfs_free_path(path);
216 if (!ret)
217 set_bit(BTRFS_INODE_COPY_EVERYTHING,
218 &BTRFS_I(inode)->runtime_flags);
216 return ret; 219 return ret;
217} 220}
218 221
@@ -236,7 +239,6 @@ int btrfs_setxattr_trans(struct inode *inode, const char *name,
236 239
237 inode_inc_iversion(inode); 240 inode_inc_iversion(inode);
238 inode->i_ctime = current_time(inode); 241 inode->i_ctime = current_time(inode);
239 set_bit(BTRFS_INODE_COPY_EVERYTHING, &BTRFS_I(inode)->runtime_flags);
240 ret = btrfs_update_inode(trans, root, inode); 242 ret = btrfs_update_inode(trans, root, inode);
241 BUG_ON(ret); 243 BUG_ON(ret);
242out: 244out:
@@ -388,8 +390,6 @@ static int btrfs_xattr_handler_set_prop(const struct xattr_handler *handler,
388 if (!ret) { 390 if (!ret) {
389 inode_inc_iversion(inode); 391 inode_inc_iversion(inode);
390 inode->i_ctime = current_time(inode); 392 inode->i_ctime = current_time(inode);
391 set_bit(BTRFS_INODE_COPY_EVERYTHING,
392 &BTRFS_I(inode)->runtime_flags);
393 ret = btrfs_update_inode(trans, root, inode); 393 ret = btrfs_update_inode(trans, root, inode);
394 BUG_ON(ret); 394 BUG_ON(ret);
395 } 395 }
diff --git a/fs/btrfs/zstd.c b/fs/btrfs/zstd.c
index a6ff07cf11d5..3837ca180d52 100644
--- a/fs/btrfs/zstd.c
+++ b/fs/btrfs/zstd.c
@@ -105,10 +105,10 @@ static void zstd_reclaim_timer_fn(struct timer_list *timer)
105 unsigned long reclaim_threshold = jiffies - ZSTD_BTRFS_RECLAIM_JIFFIES; 105 unsigned long reclaim_threshold = jiffies - ZSTD_BTRFS_RECLAIM_JIFFIES;
106 struct list_head *pos, *next; 106 struct list_head *pos, *next;
107 107
108 spin_lock(&wsm.lock); 108 spin_lock_bh(&wsm.lock);
109 109
110 if (list_empty(&wsm.lru_list)) { 110 if (list_empty(&wsm.lru_list)) {
111 spin_unlock(&wsm.lock); 111 spin_unlock_bh(&wsm.lock);
112 return; 112 return;
113 } 113 }
114 114
@@ -137,7 +137,7 @@ static void zstd_reclaim_timer_fn(struct timer_list *timer)
137 if (!list_empty(&wsm.lru_list)) 137 if (!list_empty(&wsm.lru_list))
138 mod_timer(&wsm.timer, jiffies + ZSTD_BTRFS_RECLAIM_JIFFIES); 138 mod_timer(&wsm.timer, jiffies + ZSTD_BTRFS_RECLAIM_JIFFIES);
139 139
140 spin_unlock(&wsm.lock); 140 spin_unlock_bh(&wsm.lock);
141} 141}
142 142
143/* 143/*
@@ -198,7 +198,7 @@ static void zstd_cleanup_workspace_manager(void)
198 struct workspace *workspace; 198 struct workspace *workspace;
199 int i; 199 int i;
200 200
201 spin_lock(&wsm.lock); 201 spin_lock_bh(&wsm.lock);
202 for (i = 0; i < ZSTD_BTRFS_MAX_LEVEL; i++) { 202 for (i = 0; i < ZSTD_BTRFS_MAX_LEVEL; i++) {
203 while (!list_empty(&wsm.idle_ws[i])) { 203 while (!list_empty(&wsm.idle_ws[i])) {
204 workspace = container_of(wsm.idle_ws[i].next, 204 workspace = container_of(wsm.idle_ws[i].next,
@@ -208,7 +208,7 @@ static void zstd_cleanup_workspace_manager(void)
208 zstd_free_workspace(&workspace->list); 208 zstd_free_workspace(&workspace->list);
209 } 209 }
210 } 210 }
211 spin_unlock(&wsm.lock); 211 spin_unlock_bh(&wsm.lock);
212 212
213 del_timer_sync(&wsm.timer); 213 del_timer_sync(&wsm.timer);
214} 214}
@@ -230,7 +230,7 @@ static struct list_head *zstd_find_workspace(unsigned int level)
230 struct workspace *workspace; 230 struct workspace *workspace;
231 int i = level - 1; 231 int i = level - 1;
232 232
233 spin_lock(&wsm.lock); 233 spin_lock_bh(&wsm.lock);
234 for_each_set_bit_from(i, &wsm.active_map, ZSTD_BTRFS_MAX_LEVEL) { 234 for_each_set_bit_from(i, &wsm.active_map, ZSTD_BTRFS_MAX_LEVEL) {
235 if (!list_empty(&wsm.idle_ws[i])) { 235 if (!list_empty(&wsm.idle_ws[i])) {
236 ws = wsm.idle_ws[i].next; 236 ws = wsm.idle_ws[i].next;
@@ -242,11 +242,11 @@ static struct list_head *zstd_find_workspace(unsigned int level)
242 list_del(&workspace->lru_list); 242 list_del(&workspace->lru_list);
243 if (list_empty(&wsm.idle_ws[i])) 243 if (list_empty(&wsm.idle_ws[i]))
244 clear_bit(i, &wsm.active_map); 244 clear_bit(i, &wsm.active_map);
245 spin_unlock(&wsm.lock); 245 spin_unlock_bh(&wsm.lock);
246 return ws; 246 return ws;
247 } 247 }
248 } 248 }
249 spin_unlock(&wsm.lock); 249 spin_unlock_bh(&wsm.lock);
250 250
251 return NULL; 251 return NULL;
252} 252}
@@ -305,7 +305,7 @@ static void zstd_put_workspace(struct list_head *ws)
305{ 305{
306 struct workspace *workspace = list_to_workspace(ws); 306 struct workspace *workspace = list_to_workspace(ws);
307 307
308 spin_lock(&wsm.lock); 308 spin_lock_bh(&wsm.lock);
309 309
310 /* A node is only taken off the lru if we are the corresponding level */ 310 /* A node is only taken off the lru if we are the corresponding level */
311 if (workspace->req_level == workspace->level) { 311 if (workspace->req_level == workspace->level) {
@@ -325,7 +325,7 @@ static void zstd_put_workspace(struct list_head *ws)
325 list_add(&workspace->list, &wsm.idle_ws[workspace->level - 1]); 325 list_add(&workspace->list, &wsm.idle_ws[workspace->level - 1]);
326 workspace->req_level = 0; 326 workspace->req_level = 0;
327 327
328 spin_unlock(&wsm.lock); 328 spin_unlock_bh(&wsm.lock);
329 329
330 if (workspace->level == ZSTD_BTRFS_MAX_LEVEL) 330 if (workspace->level == ZSTD_BTRFS_MAX_LEVEL)
331 cond_wake_up(&wsm.wait); 331 cond_wake_up(&wsm.wait);
diff --git a/fs/buffer.c b/fs/buffer.c
index 0faa41fb4c88..e450c55f6434 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/buffer.c 3 * linux/fs/buffer.c
3 * 4 *
diff --git a/fs/cachefiles/Kconfig b/fs/cachefiles/Kconfig
index 80e9c6167f0b..ae559ed5b3b3 100644
--- a/fs/cachefiles/Kconfig
+++ b/fs/cachefiles/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1 2
2config CACHEFILES 3config CACHEFILES
3 tristate "Filesystem caching on files" 4 tristate "Filesystem caching on files"
diff --git a/fs/cachefiles/bind.c b/fs/cachefiles/bind.c
index 4a717d400807..dfb14dbddf51 100644
--- a/fs/cachefiles/bind.c
+++ b/fs/cachefiles/bind.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Bind and unbind a cache from the filesystem backing it 2/* Bind and unbind a cache from the filesystem backing it
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/module.h> 8#include <linux/module.h>
diff --git a/fs/cachefiles/daemon.c b/fs/cachefiles/daemon.c
index 3fdee214a5bb..752c1e43416f 100644
--- a/fs/cachefiles/daemon.c
+++ b/fs/cachefiles/daemon.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Daemon interface 2/* Daemon interface
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/module.h> 8#include <linux/module.h>
diff --git a/fs/cachefiles/interface.c b/fs/cachefiles/interface.c
index 222bc5d8b62c..4cea5fbf695e 100644
--- a/fs/cachefiles/interface.c
+++ b/fs/cachefiles/interface.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* FS-Cache interface to CacheFiles 2/* FS-Cache interface to CacheFiles
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/slab.h> 8#include <linux/slab.h>
diff --git a/fs/cachefiles/internal.h b/fs/cachefiles/internal.h
index d2f6f996e65a..cf9bd6401c2d 100644
--- a/fs/cachefiles/internal.h
+++ b/fs/cachefiles/internal.h
@@ -1,12 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* General netfs cache on cache files internal defs 2/* General netfs cache on cache files internal defs
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#ifdef pr_fmt 8#ifdef pr_fmt
diff --git a/fs/cachefiles/key.c b/fs/cachefiles/key.c
index 33b58c60f2d1..be96f5fc5cac 100644
--- a/fs/cachefiles/key.c
+++ b/fs/cachefiles/key.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Key to pathname encoder 2/* Key to pathname encoder
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/slab.h> 8#include <linux/slab.h>
diff --git a/fs/cachefiles/main.c b/fs/cachefiles/main.c
index f54d3f5b2e40..ddf0cd58d60c 100644
--- a/fs/cachefiles/main.c
+++ b/fs/cachefiles/main.c
@@ -1,13 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Network filesystem caching backend to use cache files on a premounted 2/* Network filesystem caching backend to use cache files on a premounted
2 * filesystem 3 * filesystem
3 * 4 *
4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 5 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
5 * Written by David Howells (dhowells@redhat.com) 6 * Written by David Howells (dhowells@redhat.com)
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public Licence
9 * as published by the Free Software Foundation; either version
10 * 2 of the Licence, or (at your option) any later version.
11 */ 7 */
12 8
13#include <linux/module.h> 9#include <linux/module.h>
diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
index d27720cd3664..ecc8ecbbfa5a 100644
--- a/fs/cachefiles/namei.c
+++ b/fs/cachefiles/namei.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* CacheFiles path walking and related routines 2/* CacheFiles path walking and related routines
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/module.h> 8#include <linux/module.h>
diff --git a/fs/cachefiles/proc.c b/fs/cachefiles/proc.c
index 0ce1aa56b67f..6e67aea0f24e 100644
--- a/fs/cachefiles/proc.c
+++ b/fs/cachefiles/proc.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* CacheFiles statistics 2/* CacheFiles statistics
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/module.h> 8#include <linux/module.h>
diff --git a/fs/cachefiles/rdwr.c b/fs/cachefiles/rdwr.c
index 8a577409d030..44a3ce1e4ce4 100644
--- a/fs/cachefiles/rdwr.c
+++ b/fs/cachefiles/rdwr.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Storage object read/write 2/* Storage object read/write
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/mount.h> 8#include <linux/mount.h>
diff --git a/fs/cachefiles/security.c b/fs/cachefiles/security.c
index 31bbc0528b11..aec13fd94692 100644
--- a/fs/cachefiles/security.c
+++ b/fs/cachefiles/security.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* CacheFiles security management 2/* CacheFiles security management
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/fs.h> 8#include <linux/fs.h>
diff --git a/fs/cachefiles/xattr.c b/fs/cachefiles/xattr.c
index 511e6c68156a..72e42438f3d7 100644
--- a/fs/cachefiles/xattr.c
+++ b/fs/cachefiles/xattr.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* CacheFiles extended attribute management 2/* CacheFiles extended attribute management
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/module.h> 8#include <linux/module.h>
diff --git a/fs/ceph/Kconfig b/fs/ceph/Kconfig
index 52095f473464..7f7d92d6b024 100644
--- a/fs/ceph/Kconfig
+++ b/fs/ceph/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config CEPH_FS 2config CEPH_FS
2 tristate "Ceph distributed file system" 3 tristate "Ceph distributed file system"
3 depends on INET 4 depends on INET
diff --git a/fs/ceph/acl.c b/fs/ceph/acl.c
index 5f0103f40079..8a19c249036c 100644
--- a/fs/ceph/acl.c
+++ b/fs/ceph/acl.c
@@ -1,21 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/ceph/acl.c 3 * linux/fs/ceph/acl.c
3 * 4 *
4 * Copyright (C) 2013 Guangliang Zhao, <lucienchao@gmail.com> 5 * Copyright (C) 2013 Guangliang Zhao, <lucienchao@gmail.com>
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License v2 as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public
16 * License along with this program; if not, write to the
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 * Boston, MA 021110-1307, USA.
19 */ 6 */
20 7
21#include <linux/ceph/ceph_debug.h> 8#include <linux/ceph/ceph_debug.h>
diff --git a/fs/ceph/cache.c b/fs/ceph/cache.c
index 1bf3502bdd6f..bc90cf6ad7ed 100644
--- a/fs/ceph/cache.c
+++ b/fs/ceph/cache.c
@@ -1,24 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Ceph cache definitions. 3 * Ceph cache definitions.
3 * 4 *
4 * Copyright (C) 2013 by Adfin Solutions, Inc. All Rights Reserved. 5 * Copyright (C) 2013 by Adfin Solutions, Inc. All Rights Reserved.
5 * Written by Milosz Tanski (milosz@adfin.com) 6 * Written by Milosz Tanski (milosz@adfin.com)
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2
9 * as published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to:
18 * Free Software Foundation
19 * 51 Franklin Street, Fifth Floor
20 * Boston, MA 02111-1301 USA
21 *
22 */ 7 */
23 8
24#include "super.h" 9#include "super.h"
diff --git a/fs/ceph/cache.h b/fs/ceph/cache.h
index 7e72c7594f0c..e486fac3434d 100644
--- a/fs/ceph/cache.h
+++ b/fs/ceph/cache.h
@@ -1,24 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Ceph cache definitions. 3 * Ceph cache definitions.
3 * 4 *
4 * Copyright (C) 2013 by Adfin Solutions, Inc. All Rights Reserved. 5 * Copyright (C) 2013 by Adfin Solutions, Inc. All Rights Reserved.
5 * Written by Milosz Tanski (milosz@adfin.com) 6 * Written by Milosz Tanski (milosz@adfin.com)
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2
9 * as published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to:
18 * Free Software Foundation
19 * 51 Franklin Street, Fifth Floor
20 * Boston, MA 02111-1301 USA
21 *
22 */ 7 */
23 8
24#ifndef _CEPH_CACHE_H 9#ifndef _CEPH_CACHE_H
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c
index 72f8e1311392..0176241eaea7 100644
--- a/fs/ceph/caps.c
+++ b/fs/ceph/caps.c
@@ -2738,15 +2738,13 @@ int ceph_get_caps(struct ceph_inode_info *ci, int need, int want,
2738 _got = 0; 2738 _got = 0;
2739 ret = try_get_cap_refs(ci, need, want, endoff, 2739 ret = try_get_cap_refs(ci, need, want, endoff,
2740 false, &_got); 2740 false, &_got);
2741 if (ret == -EAGAIN) { 2741 if (ret == -EAGAIN)
2742 continue; 2742 continue;
2743 } else if (!ret) { 2743 if (!ret) {
2744 int err;
2745
2746 DEFINE_WAIT_FUNC(wait, woken_wake_function); 2744 DEFINE_WAIT_FUNC(wait, woken_wake_function);
2747 add_wait_queue(&ci->i_cap_wq, &wait); 2745 add_wait_queue(&ci->i_cap_wq, &wait);
2748 2746
2749 while (!(err = try_get_cap_refs(ci, need, want, endoff, 2747 while (!(ret = try_get_cap_refs(ci, need, want, endoff,
2750 true, &_got))) { 2748 true, &_got))) {
2751 if (signal_pending(current)) { 2749 if (signal_pending(current)) {
2752 ret = -ERESTARTSYS; 2750 ret = -ERESTARTSYS;
@@ -2756,14 +2754,16 @@ int ceph_get_caps(struct ceph_inode_info *ci, int need, int want,
2756 } 2754 }
2757 2755
2758 remove_wait_queue(&ci->i_cap_wq, &wait); 2756 remove_wait_queue(&ci->i_cap_wq, &wait);
2759 if (err == -EAGAIN) 2757 if (ret == -EAGAIN)
2760 continue; 2758 continue;
2761 } 2759 }
2762 if (ret == -ESTALE) { 2760 if (ret < 0) {
2763 /* session was killed, try renew caps */ 2761 if (ret == -ESTALE) {
2764 ret = ceph_renew_caps(&ci->vfs_inode); 2762 /* session was killed, try renew caps */
2765 if (ret == 0) 2763 ret = ceph_renew_caps(&ci->vfs_inode);
2766 continue; 2764 if (ret == 0)
2765 continue;
2766 }
2767 return ret; 2767 return ret;
2768 } 2768 }
2769 2769
@@ -2992,8 +2992,10 @@ void ceph_put_wrbuffer_cap_refs(struct ceph_inode_info *ci, int nr,
2992 } 2992 }
2993 if (complete_capsnap) 2993 if (complete_capsnap)
2994 wake_up_all(&ci->i_cap_wq); 2994 wake_up_all(&ci->i_cap_wq);
2995 while (put-- > 0) 2995 while (put-- > 0) {
2996 iput(inode); 2996 /* avoid calling iput_final() in osd dispatch threads */
2997 ceph_async_iput(inode);
2998 }
2997} 2999}
2998 3000
2999/* 3001/*
@@ -3964,8 +3966,9 @@ void ceph_handle_caps(struct ceph_mds_session *session,
3964done: 3966done:
3965 mutex_unlock(&session->s_mutex); 3967 mutex_unlock(&session->s_mutex);
3966done_unlocked: 3968done_unlocked:
3967 iput(inode);
3968 ceph_put_string(extra_info.pool_ns); 3969 ceph_put_string(extra_info.pool_ns);
3970 /* avoid calling iput_final() in mds dispatch threads */
3971 ceph_async_iput(inode);
3969 return; 3972 return;
3970 3973
3971flush_cap_releases: 3974flush_cap_releases:
@@ -4011,7 +4014,8 @@ void ceph_check_delayed_caps(struct ceph_mds_client *mdsc)
4011 if (inode) { 4014 if (inode) {
4012 dout("check_delayed_caps on %p\n", inode); 4015 dout("check_delayed_caps on %p\n", inode);
4013 ceph_check_caps(ci, flags, NULL); 4016 ceph_check_caps(ci, flags, NULL);
4014 iput(inode); 4017 /* avoid calling iput_final() in tick thread */
4018 ceph_async_iput(inode);
4015 } 4019 }
4016 } 4020 }
4017 spin_unlock(&mdsc->cap_delay_lock); 4021 spin_unlock(&mdsc->cap_delay_lock);
diff --git a/fs/ceph/file.c b/fs/ceph/file.c
index 305daf043eb0..183c37c0a8fc 100644
--- a/fs/ceph/file.c
+++ b/fs/ceph/file.c
@@ -791,7 +791,7 @@ static void ceph_aio_complete_req(struct ceph_osd_request *req)
791 if (aio_work) { 791 if (aio_work) {
792 INIT_WORK(&aio_work->work, ceph_aio_retry_work); 792 INIT_WORK(&aio_work->work, ceph_aio_retry_work);
793 aio_work->req = req; 793 aio_work->req = req;
794 queue_work(ceph_inode_to_client(inode)->wb_wq, 794 queue_work(ceph_inode_to_client(inode)->inode_wq,
795 &aio_work->work); 795 &aio_work->work);
796 return; 796 return;
797 } 797 }
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
index f85355bf49c4..761451f36e2d 100644
--- a/fs/ceph/inode.c
+++ b/fs/ceph/inode.c
@@ -33,9 +33,7 @@
33 33
34static const struct inode_operations ceph_symlink_iops; 34static const struct inode_operations ceph_symlink_iops;
35 35
36static void ceph_invalidate_work(struct work_struct *work); 36static void ceph_inode_work(struct work_struct *work);
37static void ceph_writeback_work(struct work_struct *work);
38static void ceph_vmtruncate_work(struct work_struct *work);
39 37
40/* 38/*
41 * find or create an inode, given the ceph ino number 39 * find or create an inode, given the ceph ino number
@@ -509,10 +507,8 @@ struct inode *ceph_alloc_inode(struct super_block *sb)
509 INIT_LIST_HEAD(&ci->i_snap_realm_item); 507 INIT_LIST_HEAD(&ci->i_snap_realm_item);
510 INIT_LIST_HEAD(&ci->i_snap_flush_item); 508 INIT_LIST_HEAD(&ci->i_snap_flush_item);
511 509
512 INIT_WORK(&ci->i_wb_work, ceph_writeback_work); 510 INIT_WORK(&ci->i_work, ceph_inode_work);
513 INIT_WORK(&ci->i_pg_inv_work, ceph_invalidate_work); 511 ci->i_work_mask = 0;
514
515 INIT_WORK(&ci->i_vmtruncate_work, ceph_vmtruncate_work);
516 512
517 ceph_fscache_inode_init(ci); 513 ceph_fscache_inode_init(ci);
518 514
@@ -1480,7 +1476,8 @@ static int readdir_prepopulate_inodes_only(struct ceph_mds_request *req,
1480 pr_err("fill_inode badness on %p got %d\n", in, rc); 1476 pr_err("fill_inode badness on %p got %d\n", in, rc);
1481 err = rc; 1477 err = rc;
1482 } 1478 }
1483 iput(in); 1479 /* avoid calling iput_final() in mds dispatch threads */
1480 ceph_async_iput(in);
1484 } 1481 }
1485 1482
1486 return err; 1483 return err;
@@ -1678,8 +1675,11 @@ retry_lookup:
1678 &req->r_caps_reservation); 1675 &req->r_caps_reservation);
1679 if (ret < 0) { 1676 if (ret < 0) {
1680 pr_err("fill_inode badness on %p\n", in); 1677 pr_err("fill_inode badness on %p\n", in);
1681 if (d_really_is_negative(dn)) 1678 if (d_really_is_negative(dn)) {
1682 iput(in); 1679 /* avoid calling iput_final() in mds
1680 * dispatch threads */
1681 ceph_async_iput(in);
1682 }
1683 d_drop(dn); 1683 d_drop(dn);
1684 err = ret; 1684 err = ret;
1685 goto next_item; 1685 goto next_item;
@@ -1689,7 +1689,7 @@ retry_lookup:
1689 if (ceph_security_xattr_deadlock(in)) { 1689 if (ceph_security_xattr_deadlock(in)) {
1690 dout(" skip splicing dn %p to inode %p" 1690 dout(" skip splicing dn %p to inode %p"
1691 " (security xattr deadlock)\n", dn, in); 1691 " (security xattr deadlock)\n", dn, in);
1692 iput(in); 1692 ceph_async_iput(in);
1693 skipped++; 1693 skipped++;
1694 goto next_item; 1694 goto next_item;
1695 } 1695 }
@@ -1741,56 +1741,86 @@ bool ceph_inode_set_size(struct inode *inode, loff_t size)
1741} 1741}
1742 1742
1743/* 1743/*
1744 * Put reference to inode, but avoid calling iput_final() in current thread.
1745 * iput_final() may wait for reahahead pages. The wait can cause deadlock in
1746 * some contexts.
1747 */
1748void ceph_async_iput(struct inode *inode)
1749{
1750 if (!inode)
1751 return;
1752 for (;;) {
1753 if (atomic_add_unless(&inode->i_count, -1, 1))
1754 break;
1755 if (queue_work(ceph_inode_to_client(inode)->inode_wq,
1756 &ceph_inode(inode)->i_work))
1757 break;
1758 /* queue work failed, i_count must be at least 2 */
1759 }
1760}
1761
1762/*
1744 * Write back inode data in a worker thread. (This can't be done 1763 * Write back inode data in a worker thread. (This can't be done
1745 * in the message handler context.) 1764 * in the message handler context.)
1746 */ 1765 */
1747void ceph_queue_writeback(struct inode *inode) 1766void ceph_queue_writeback(struct inode *inode)
1748{ 1767{
1768 struct ceph_inode_info *ci = ceph_inode(inode);
1769 set_bit(CEPH_I_WORK_WRITEBACK, &ci->i_work_mask);
1770
1749 ihold(inode); 1771 ihold(inode);
1750 if (queue_work(ceph_inode_to_client(inode)->wb_wq, 1772 if (queue_work(ceph_inode_to_client(inode)->inode_wq,
1751 &ceph_inode(inode)->i_wb_work)) { 1773 &ci->i_work)) {
1752 dout("ceph_queue_writeback %p\n", inode); 1774 dout("ceph_queue_writeback %p\n", inode);
1753 } else { 1775 } else {
1754 dout("ceph_queue_writeback %p failed\n", inode); 1776 dout("ceph_queue_writeback %p already queued, mask=%lx\n",
1777 inode, ci->i_work_mask);
1755 iput(inode); 1778 iput(inode);
1756 } 1779 }
1757} 1780}
1758 1781
1759static void ceph_writeback_work(struct work_struct *work)
1760{
1761 struct ceph_inode_info *ci = container_of(work, struct ceph_inode_info,
1762 i_wb_work);
1763 struct inode *inode = &ci->vfs_inode;
1764
1765 dout("writeback %p\n", inode);
1766 filemap_fdatawrite(&inode->i_data);
1767 iput(inode);
1768}
1769
1770/* 1782/*
1771 * queue an async invalidation 1783 * queue an async invalidation
1772 */ 1784 */
1773void ceph_queue_invalidate(struct inode *inode) 1785void ceph_queue_invalidate(struct inode *inode)
1774{ 1786{
1787 struct ceph_inode_info *ci = ceph_inode(inode);
1788 set_bit(CEPH_I_WORK_INVALIDATE_PAGES, &ci->i_work_mask);
1789
1775 ihold(inode); 1790 ihold(inode);
1776 if (queue_work(ceph_inode_to_client(inode)->pg_inv_wq, 1791 if (queue_work(ceph_inode_to_client(inode)->inode_wq,
1777 &ceph_inode(inode)->i_pg_inv_work)) { 1792 &ceph_inode(inode)->i_work)) {
1778 dout("ceph_queue_invalidate %p\n", inode); 1793 dout("ceph_queue_invalidate %p\n", inode);
1779 } else { 1794 } else {
1780 dout("ceph_queue_invalidate %p failed\n", inode); 1795 dout("ceph_queue_invalidate %p already queued, mask=%lx\n",
1796 inode, ci->i_work_mask);
1781 iput(inode); 1797 iput(inode);
1782 } 1798 }
1783} 1799}
1784 1800
1785/* 1801/*
1786 * Invalidate inode pages in a worker thread. (This can't be done 1802 * Queue an async vmtruncate. If we fail to queue work, we will handle
1787 * in the message handler context.) 1803 * the truncation the next time we call __ceph_do_pending_vmtruncate.
1788 */ 1804 */
1789static void ceph_invalidate_work(struct work_struct *work) 1805void ceph_queue_vmtruncate(struct inode *inode)
1790{ 1806{
1791 struct ceph_inode_info *ci = container_of(work, struct ceph_inode_info, 1807 struct ceph_inode_info *ci = ceph_inode(inode);
1792 i_pg_inv_work); 1808 set_bit(CEPH_I_WORK_VMTRUNCATE, &ci->i_work_mask);
1793 struct inode *inode = &ci->vfs_inode; 1809
1810 ihold(inode);
1811 if (queue_work(ceph_inode_to_client(inode)->inode_wq,
1812 &ci->i_work)) {
1813 dout("ceph_queue_vmtruncate %p\n", inode);
1814 } else {
1815 dout("ceph_queue_vmtruncate %p already queued, mask=%lx\n",
1816 inode, ci->i_work_mask);
1817 iput(inode);
1818 }
1819}
1820
1821static void ceph_do_invalidate_pages(struct inode *inode)
1822{
1823 struct ceph_inode_info *ci = ceph_inode(inode);
1794 struct ceph_fs_client *fsc = ceph_inode_to_client(inode); 1824 struct ceph_fs_client *fsc = ceph_inode_to_client(inode);
1795 u32 orig_gen; 1825 u32 orig_gen;
1796 int check = 0; 1826 int check = 0;
@@ -1842,44 +1872,6 @@ static void ceph_invalidate_work(struct work_struct *work)
1842out: 1872out:
1843 if (check) 1873 if (check)
1844 ceph_check_caps(ci, 0, NULL); 1874 ceph_check_caps(ci, 0, NULL);
1845 iput(inode);
1846}
1847
1848
1849/*
1850 * called by trunc_wq;
1851 *
1852 * We also truncate in a separate thread as well.
1853 */
1854static void ceph_vmtruncate_work(struct work_struct *work)
1855{
1856 struct ceph_inode_info *ci = container_of(work, struct ceph_inode_info,
1857 i_vmtruncate_work);
1858 struct inode *inode = &ci->vfs_inode;
1859
1860 dout("vmtruncate_work %p\n", inode);
1861 __ceph_do_pending_vmtruncate(inode);
1862 iput(inode);
1863}
1864
1865/*
1866 * Queue an async vmtruncate. If we fail to queue work, we will handle
1867 * the truncation the next time we call __ceph_do_pending_vmtruncate.
1868 */
1869void ceph_queue_vmtruncate(struct inode *inode)
1870{
1871 struct ceph_inode_info *ci = ceph_inode(inode);
1872
1873 ihold(inode);
1874
1875 if (queue_work(ceph_sb_to_client(inode->i_sb)->trunc_wq,
1876 &ci->i_vmtruncate_work)) {
1877 dout("ceph_queue_vmtruncate %p\n", inode);
1878 } else {
1879 dout("ceph_queue_vmtruncate %p failed, pending=%d\n",
1880 inode, ci->i_truncate_pending);
1881 iput(inode);
1882 }
1883} 1875}
1884 1876
1885/* 1877/*
@@ -1943,6 +1935,25 @@ retry:
1943 wake_up_all(&ci->i_cap_wq); 1935 wake_up_all(&ci->i_cap_wq);
1944} 1936}
1945 1937
1938static void ceph_inode_work(struct work_struct *work)
1939{
1940 struct ceph_inode_info *ci = container_of(work, struct ceph_inode_info,
1941 i_work);
1942 struct inode *inode = &ci->vfs_inode;
1943
1944 if (test_and_clear_bit(CEPH_I_WORK_WRITEBACK, &ci->i_work_mask)) {
1945 dout("writeback %p\n", inode);
1946 filemap_fdatawrite(&inode->i_data);
1947 }
1948 if (test_and_clear_bit(CEPH_I_WORK_INVALIDATE_PAGES, &ci->i_work_mask))
1949 ceph_do_invalidate_pages(inode);
1950
1951 if (test_and_clear_bit(CEPH_I_WORK_VMTRUNCATE, &ci->i_work_mask))
1952 __ceph_do_pending_vmtruncate(inode);
1953
1954 iput(inode);
1955}
1956
1946/* 1957/*
1947 * symlinks 1958 * symlinks
1948 */ 1959 */
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
index 959b1bf7c327..c8a9b89b922d 100644
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@ -690,11 +690,12 @@ void ceph_mdsc_release_request(struct kref *kref)
690 ceph_msg_put(req->r_reply); 690 ceph_msg_put(req->r_reply);
691 if (req->r_inode) { 691 if (req->r_inode) {
692 ceph_put_cap_refs(ceph_inode(req->r_inode), CEPH_CAP_PIN); 692 ceph_put_cap_refs(ceph_inode(req->r_inode), CEPH_CAP_PIN);
693 iput(req->r_inode); 693 /* avoid calling iput_final() in mds dispatch threads */
694 ceph_async_iput(req->r_inode);
694 } 695 }
695 if (req->r_parent) 696 if (req->r_parent)
696 ceph_put_cap_refs(ceph_inode(req->r_parent), CEPH_CAP_PIN); 697 ceph_put_cap_refs(ceph_inode(req->r_parent), CEPH_CAP_PIN);
697 iput(req->r_target_inode); 698 ceph_async_iput(req->r_target_inode);
698 if (req->r_dentry) 699 if (req->r_dentry)
699 dput(req->r_dentry); 700 dput(req->r_dentry);
700 if (req->r_old_dentry) 701 if (req->r_old_dentry)
@@ -708,7 +709,7 @@ void ceph_mdsc_release_request(struct kref *kref)
708 */ 709 */
709 ceph_put_cap_refs(ceph_inode(req->r_old_dentry_dir), 710 ceph_put_cap_refs(ceph_inode(req->r_old_dentry_dir),
710 CEPH_CAP_PIN); 711 CEPH_CAP_PIN);
711 iput(req->r_old_dentry_dir); 712 ceph_async_iput(req->r_old_dentry_dir);
712 } 713 }
713 kfree(req->r_path1); 714 kfree(req->r_path1);
714 kfree(req->r_path2); 715 kfree(req->r_path2);
@@ -818,7 +819,8 @@ static void __unregister_request(struct ceph_mds_client *mdsc,
818 } 819 }
819 820
820 if (req->r_unsafe_dir) { 821 if (req->r_unsafe_dir) {
821 iput(req->r_unsafe_dir); 822 /* avoid calling iput_final() in mds dispatch threads */
823 ceph_async_iput(req->r_unsafe_dir);
822 req->r_unsafe_dir = NULL; 824 req->r_unsafe_dir = NULL;
823 } 825 }
824 826
@@ -983,7 +985,7 @@ static int __choose_mds(struct ceph_mds_client *mdsc,
983 cap = rb_entry(rb_first(&ci->i_caps), struct ceph_cap, ci_node); 985 cap = rb_entry(rb_first(&ci->i_caps), struct ceph_cap, ci_node);
984 if (!cap) { 986 if (!cap) {
985 spin_unlock(&ci->i_ceph_lock); 987 spin_unlock(&ci->i_ceph_lock);
986 iput(inode); 988 ceph_async_iput(inode);
987 goto random; 989 goto random;
988 } 990 }
989 mds = cap->session->s_mds; 991 mds = cap->session->s_mds;
@@ -992,7 +994,9 @@ static int __choose_mds(struct ceph_mds_client *mdsc,
992 cap == ci->i_auth_cap ? "auth " : "", cap); 994 cap == ci->i_auth_cap ? "auth " : "", cap);
993 spin_unlock(&ci->i_ceph_lock); 995 spin_unlock(&ci->i_ceph_lock);
994out: 996out:
995 iput(inode); 997 /* avoid calling iput_final() while holding mdsc->mutex or
998 * in mds dispatch threads */
999 ceph_async_iput(inode);
996 return mds; 1000 return mds;
997 1001
998random: 1002random:
@@ -1302,7 +1306,9 @@ int ceph_iterate_session_caps(struct ceph_mds_session *session,
1302 spin_unlock(&session->s_cap_lock); 1306 spin_unlock(&session->s_cap_lock);
1303 1307
1304 if (last_inode) { 1308 if (last_inode) {
1305 iput(last_inode); 1309 /* avoid calling iput_final() while holding
1310 * s_mutex or in mds dispatch threads */
1311 ceph_async_iput(last_inode);
1306 last_inode = NULL; 1312 last_inode = NULL;
1307 } 1313 }
1308 if (old_cap) { 1314 if (old_cap) {
@@ -1335,7 +1341,7 @@ out:
1335 session->s_cap_iterator = NULL; 1341 session->s_cap_iterator = NULL;
1336 spin_unlock(&session->s_cap_lock); 1342 spin_unlock(&session->s_cap_lock);
1337 1343
1338 iput(last_inode); 1344 ceph_async_iput(last_inode);
1339 if (old_cap) 1345 if (old_cap)
1340 ceph_put_cap(session->s_mdsc, old_cap); 1346 ceph_put_cap(session->s_mdsc, old_cap);
1341 1347
@@ -1471,7 +1477,8 @@ static void remove_session_caps(struct ceph_mds_session *session)
1471 spin_unlock(&session->s_cap_lock); 1477 spin_unlock(&session->s_cap_lock);
1472 1478
1473 inode = ceph_find_inode(sb, vino); 1479 inode = ceph_find_inode(sb, vino);
1474 iput(inode); 1480 /* avoid calling iput_final() while holding s_mutex */
1481 ceph_async_iput(inode);
1475 1482
1476 spin_lock(&session->s_cap_lock); 1483 spin_lock(&session->s_cap_lock);
1477 } 1484 }
@@ -2114,9 +2121,10 @@ retry:
2114 if (inode && ceph_snap(inode) == CEPH_SNAPDIR) { 2121 if (inode && ceph_snap(inode) == CEPH_SNAPDIR) {
2115 dout("build_path path+%d: %p SNAPDIR\n", 2122 dout("build_path path+%d: %p SNAPDIR\n",
2116 pos, temp); 2123 pos, temp);
2117 } else if (stop_on_nosnap && inode && 2124 } else if (stop_on_nosnap && inode && dentry != temp &&
2118 ceph_snap(inode) == CEPH_NOSNAP) { 2125 ceph_snap(inode) == CEPH_NOSNAP) {
2119 spin_unlock(&temp->d_lock); 2126 spin_unlock(&temp->d_lock);
2127 pos++; /* get rid of any prepended '/' */
2120 break; 2128 break;
2121 } else { 2129 } else {
2122 pos -= temp->d_name.len; 2130 pos -= temp->d_name.len;
@@ -3912,8 +3920,9 @@ release:
3912 ceph_con_send(&session->s_con, msg); 3920 ceph_con_send(&session->s_con, msg);
3913 3921
3914out: 3922out:
3915 iput(inode);
3916 mutex_unlock(&session->s_mutex); 3923 mutex_unlock(&session->s_mutex);
3924 /* avoid calling iput_final() in mds dispatch threads */
3925 ceph_async_iput(inode);
3917 return; 3926 return;
3918 3927
3919bad: 3928bad:
diff --git a/fs/ceph/quota.c b/fs/ceph/quota.c
index c4522212872c..d629fc857450 100644
--- a/fs/ceph/quota.c
+++ b/fs/ceph/quota.c
@@ -74,7 +74,8 @@ void ceph_handle_quota(struct ceph_mds_client *mdsc,
74 le64_to_cpu(h->max_files)); 74 le64_to_cpu(h->max_files));
75 spin_unlock(&ci->i_ceph_lock); 75 spin_unlock(&ci->i_ceph_lock);
76 76
77 iput(inode); 77 /* avoid calling iput_final() in dispatch thread */
78 ceph_async_iput(inode);
78} 79}
79 80
80static struct ceph_quotarealm_inode * 81static struct ceph_quotarealm_inode *
@@ -235,7 +236,8 @@ restart:
235 236
236 ci = ceph_inode(in); 237 ci = ceph_inode(in);
237 has_quota = __ceph_has_any_quota(ci); 238 has_quota = __ceph_has_any_quota(ci);
238 iput(in); 239 /* avoid calling iput_final() while holding mdsc->snap_rwsem */
240 ceph_async_iput(in);
239 241
240 next = realm->parent; 242 next = realm->parent;
241 if (has_quota || !next) 243 if (has_quota || !next)
@@ -372,7 +374,8 @@ restart:
372 pr_warn("Invalid quota check op (%d)\n", op); 374 pr_warn("Invalid quota check op (%d)\n", op);
373 exceeded = true; /* Just break the loop */ 375 exceeded = true; /* Just break the loop */
374 } 376 }
375 iput(in); 377 /* avoid calling iput_final() while holding mdsc->snap_rwsem */
378 ceph_async_iput(in);
376 379
377 next = realm->parent; 380 next = realm->parent;
378 if (exceeded || !next) 381 if (exceeded || !next)
diff --git a/fs/ceph/snap.c b/fs/ceph/snap.c
index b26e12cd8ec3..72c6c022f02b 100644
--- a/fs/ceph/snap.c
+++ b/fs/ceph/snap.c
@@ -648,13 +648,15 @@ static void queue_realm_cap_snaps(struct ceph_snap_realm *realm)
648 if (!inode) 648 if (!inode)
649 continue; 649 continue;
650 spin_unlock(&realm->inodes_with_caps_lock); 650 spin_unlock(&realm->inodes_with_caps_lock);
651 iput(lastinode); 651 /* avoid calling iput_final() while holding
652 * mdsc->snap_rwsem or in mds dispatch threads */
653 ceph_async_iput(lastinode);
652 lastinode = inode; 654 lastinode = inode;
653 ceph_queue_cap_snap(ci); 655 ceph_queue_cap_snap(ci);
654 spin_lock(&realm->inodes_with_caps_lock); 656 spin_lock(&realm->inodes_with_caps_lock);
655 } 657 }
656 spin_unlock(&realm->inodes_with_caps_lock); 658 spin_unlock(&realm->inodes_with_caps_lock);
657 iput(lastinode); 659 ceph_async_iput(lastinode);
658 660
659 dout("queue_realm_cap_snaps %p %llx done\n", realm, realm->ino); 661 dout("queue_realm_cap_snaps %p %llx done\n", realm, realm->ino);
660} 662}
@@ -806,7 +808,9 @@ static void flush_snaps(struct ceph_mds_client *mdsc)
806 ihold(inode); 808 ihold(inode);
807 spin_unlock(&mdsc->snap_flush_lock); 809 spin_unlock(&mdsc->snap_flush_lock);
808 ceph_flush_snaps(ci, &session); 810 ceph_flush_snaps(ci, &session);
809 iput(inode); 811 /* avoid calling iput_final() while holding
812 * session->s_mutex or in mds dispatch threads */
813 ceph_async_iput(inode);
810 spin_lock(&mdsc->snap_flush_lock); 814 spin_lock(&mdsc->snap_flush_lock);
811 } 815 }
812 spin_unlock(&mdsc->snap_flush_lock); 816 spin_unlock(&mdsc->snap_flush_lock);
@@ -950,12 +954,14 @@ void ceph_handle_snap(struct ceph_mds_client *mdsc,
950 ceph_get_snap_realm(mdsc, realm); 954 ceph_get_snap_realm(mdsc, realm);
951 ceph_put_snap_realm(mdsc, oldrealm); 955 ceph_put_snap_realm(mdsc, oldrealm);
952 956
953 iput(inode); 957 /* avoid calling iput_final() while holding
958 * mdsc->snap_rwsem or mds in dispatch threads */
959 ceph_async_iput(inode);
954 continue; 960 continue;
955 961
956skip_inode: 962skip_inode:
957 spin_unlock(&ci->i_ceph_lock); 963 spin_unlock(&ci->i_ceph_lock);
958 iput(inode); 964 ceph_async_iput(inode);
959 } 965 }
960 966
961 /* we may have taken some of the old realm's children. */ 967 /* we may have taken some of the old realm's children. */
diff --git a/fs/ceph/super.c b/fs/ceph/super.c
index c864b44c8341..d57fa60dcd43 100644
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1 2
2#include <linux/ceph/ceph_debug.h> 3#include <linux/ceph/ceph_debug.h>
3 4
@@ -671,18 +672,12 @@ static struct ceph_fs_client *create_fs_client(struct ceph_mount_options *fsopt,
671 * The number of concurrent works can be high but they don't need 672 * The number of concurrent works can be high but they don't need
672 * to be processed in parallel, limit concurrency. 673 * to be processed in parallel, limit concurrency.
673 */ 674 */
674 fsc->wb_wq = alloc_workqueue("ceph-writeback", 0, 1); 675 fsc->inode_wq = alloc_workqueue("ceph-inode", WQ_UNBOUND, 0);
675 if (!fsc->wb_wq) 676 if (!fsc->inode_wq)
676 goto fail_client; 677 goto fail_client;
677 fsc->pg_inv_wq = alloc_workqueue("ceph-pg-invalid", 0, 1);
678 if (!fsc->pg_inv_wq)
679 goto fail_wb_wq;
680 fsc->trunc_wq = alloc_workqueue("ceph-trunc", 0, 1);
681 if (!fsc->trunc_wq)
682 goto fail_pg_inv_wq;
683 fsc->cap_wq = alloc_workqueue("ceph-cap", 0, 1); 678 fsc->cap_wq = alloc_workqueue("ceph-cap", 0, 1);
684 if (!fsc->cap_wq) 679 if (!fsc->cap_wq)
685 goto fail_trunc_wq; 680 goto fail_inode_wq;
686 681
687 /* set up mempools */ 682 /* set up mempools */
688 err = -ENOMEM; 683 err = -ENOMEM;
@@ -696,12 +691,8 @@ static struct ceph_fs_client *create_fs_client(struct ceph_mount_options *fsopt,
696 691
697fail_cap_wq: 692fail_cap_wq:
698 destroy_workqueue(fsc->cap_wq); 693 destroy_workqueue(fsc->cap_wq);
699fail_trunc_wq: 694fail_inode_wq:
700 destroy_workqueue(fsc->trunc_wq); 695 destroy_workqueue(fsc->inode_wq);
701fail_pg_inv_wq:
702 destroy_workqueue(fsc->pg_inv_wq);
703fail_wb_wq:
704 destroy_workqueue(fsc->wb_wq);
705fail_client: 696fail_client:
706 ceph_destroy_client(fsc->client); 697 ceph_destroy_client(fsc->client);
707fail: 698fail:
@@ -714,9 +705,7 @@ fail:
714 705
715static void flush_fs_workqueues(struct ceph_fs_client *fsc) 706static void flush_fs_workqueues(struct ceph_fs_client *fsc)
716{ 707{
717 flush_workqueue(fsc->wb_wq); 708 flush_workqueue(fsc->inode_wq);
718 flush_workqueue(fsc->pg_inv_wq);
719 flush_workqueue(fsc->trunc_wq);
720 flush_workqueue(fsc->cap_wq); 709 flush_workqueue(fsc->cap_wq);
721} 710}
722 711
@@ -724,9 +713,7 @@ static void destroy_fs_client(struct ceph_fs_client *fsc)
724{ 713{
725 dout("destroy_fs_client %p\n", fsc); 714 dout("destroy_fs_client %p\n", fsc);
726 715
727 destroy_workqueue(fsc->wb_wq); 716 destroy_workqueue(fsc->inode_wq);
728 destroy_workqueue(fsc->pg_inv_wq);
729 destroy_workqueue(fsc->trunc_wq);
730 destroy_workqueue(fsc->cap_wq); 717 destroy_workqueue(fsc->cap_wq);
731 718
732 mempool_destroy(fsc->wb_pagevec_pool); 719 mempool_destroy(fsc->wb_pagevec_pool);
diff --git a/fs/ceph/super.h b/fs/ceph/super.h
index 6edab9a750f8..5f27e1f7f2d6 100644
--- a/fs/ceph/super.h
+++ b/fs/ceph/super.h
@@ -109,9 +109,7 @@ struct ceph_fs_client {
109 mempool_t *wb_pagevec_pool; 109 mempool_t *wb_pagevec_pool;
110 atomic_long_t writeback_count; 110 atomic_long_t writeback_count;
111 111
112 struct workqueue_struct *wb_wq; 112 struct workqueue_struct *inode_wq;
113 struct workqueue_struct *pg_inv_wq;
114 struct workqueue_struct *trunc_wq;
115 struct workqueue_struct *cap_wq; 113 struct workqueue_struct *cap_wq;
116 114
117#ifdef CONFIG_DEBUG_FS 115#ifdef CONFIG_DEBUG_FS
@@ -387,10 +385,8 @@ struct ceph_inode_info {
387 struct list_head i_snap_realm_item; 385 struct list_head i_snap_realm_item;
388 struct list_head i_snap_flush_item; 386 struct list_head i_snap_flush_item;
389 387
390 struct work_struct i_wb_work; /* writeback work */ 388 struct work_struct i_work;
391 struct work_struct i_pg_inv_work; /* page invalidation work */ 389 unsigned long i_work_mask;
392
393 struct work_struct i_vmtruncate_work;
394 390
395#ifdef CONFIG_CEPH_FSCACHE 391#ifdef CONFIG_CEPH_FSCACHE
396 struct fscache_cookie *fscache; 392 struct fscache_cookie *fscache;
@@ -513,6 +509,13 @@ static inline struct inode *ceph_find_inode(struct super_block *sb,
513 509
514 510
515/* 511/*
512 * Masks of ceph inode work.
513 */
514#define CEPH_I_WORK_WRITEBACK 0 /* writeback */
515#define CEPH_I_WORK_INVALIDATE_PAGES 1 /* invalidate pages */
516#define CEPH_I_WORK_VMTRUNCATE 2 /* vmtruncate */
517
518/*
516 * We set the ERROR_WRITE bit when we start seeing write errors on an inode 519 * We set the ERROR_WRITE bit when we start seeing write errors on an inode
517 * and then clear it when they start succeeding. Note that we do a lockless 520 * and then clear it when they start succeeding. Note that we do a lockless
518 * check first, and only take the lock if it looks like it needs to be changed. 521 * check first, and only take the lock if it looks like it needs to be changed.
@@ -896,9 +899,9 @@ extern int ceph_inode_holds_cap(struct inode *inode, int mask);
896extern bool ceph_inode_set_size(struct inode *inode, loff_t size); 899extern bool ceph_inode_set_size(struct inode *inode, loff_t size);
897extern void __ceph_do_pending_vmtruncate(struct inode *inode); 900extern void __ceph_do_pending_vmtruncate(struct inode *inode);
898extern void ceph_queue_vmtruncate(struct inode *inode); 901extern void ceph_queue_vmtruncate(struct inode *inode);
899
900extern void ceph_queue_invalidate(struct inode *inode); 902extern void ceph_queue_invalidate(struct inode *inode);
901extern void ceph_queue_writeback(struct inode *inode); 903extern void ceph_queue_writeback(struct inode *inode);
904extern void ceph_async_iput(struct inode *inode);
902 905
903extern int __ceph_do_getattr(struct inode *inode, struct page *locked_page, 906extern int __ceph_do_getattr(struct inode *inode, struct page *locked_page,
904 int mask, bool force); 907 int mask, bool force);
diff --git a/fs/cifs/Kconfig b/fs/cifs/Kconfig
index 76724efc831c..aae2b8b2adf5 100644
--- a/fs/cifs/Kconfig
+++ b/fs/cifs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config CIFS 2config CIFS
2 tristate "SMB3 and CIFS support (advanced network filesystem)" 3 tristate "SMB3 and CIFS support (advanced network filesystem)"
3 depends on INET 4 depends on INET
diff --git a/fs/cifs/asn1.c b/fs/cifs/asn1.c
index 3d19595eb352..689162e2e175 100644
--- a/fs/cifs/asn1.c
+++ b/fs/cifs/asn1.c
@@ -1,20 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * The ASB.1/BER parsing code is derived from ip_nat_snmp_basic.c which was in 3 * The ASB.1/BER parsing code is derived from ip_nat_snmp_basic.c which was in
3 * turn derived from the gxsnmp package by Gregory McLean & Jochen Friedrich 4 * turn derived from the gxsnmp package by Gregory McLean & Jochen Friedrich
4 * 5 *
5 * Copyright (c) 2000 RP Internet (www.rpi.net.au). 6 * Copyright (c) 2000 RP Internet (www.rpi.net.au).
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 7 */
19 8
20#include <linux/module.h> 9#include <linux/module.h>
diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c
index 45e74da40f3a..ec933fb0b36e 100644
--- a/fs/cifs/cifs_debug.c
+++ b/fs/cifs/cifs_debug.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * fs/cifs_debug.c 3 * fs/cifs_debug.c
3 * 4 *
4 * Copyright (C) International Business Machines Corp., 2000,2005 5 * Copyright (C) International Business Machines Corp., 2000,2005
5 * 6 *
6 * Modified by Steve French (sfrench@us.ibm.com) 7 * Modified by Steve French (sfrench@us.ibm.com)
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
16 * the GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 8 */
22#include <linux/fs.h> 9#include <linux/fs.h>
23#include <linux/string.h> 10#include <linux/string.h>
diff --git a/fs/cifs/cifs_debug.h b/fs/cifs/cifs_debug.h
index 631dc1bb21c1..3d392620a2f4 100644
--- a/fs/cifs/cifs_debug.h
+++ b/fs/cifs/cifs_debug.h
@@ -1,22 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * 3 *
3 * Copyright (c) International Business Machines Corp., 2000,2002 4 * Copyright (c) International Business Machines Corp., 2000,2002
4 * Modified by Steve French (sfrench@us.ibm.com) 5 * Modified by Steve French (sfrench@us.ibm.com)
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
14 * the GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20*/ 6*/
21 7
22#ifndef _H_CIFS_DEBUG 8#ifndef _H_CIFS_DEBUG
diff --git a/fs/cifs/cifs_dfs_ref.c b/fs/cifs/cifs_dfs_ref.c
index 5d83c924cc47..41957b82d796 100644
--- a/fs/cifs/cifs_dfs_ref.c
+++ b/fs/cifs/cifs_dfs_ref.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Contains the CIFS DFS referral mounting routines used for handling 3 * Contains the CIFS DFS referral mounting routines used for handling
3 * traversal via DFS junction point 4 * traversal via DFS junction point
@@ -6,10 +7,6 @@
6 * Copyright (C) International Business Machines Corp., 2008 7 * Copyright (C) International Business Machines Corp., 2008
7 * Author(s): Igor Mammedov (niallain@gmail.com) 8 * Author(s): Igor Mammedov (niallain@gmail.com)
8 * Steve French (sfrench@us.ibm.com) 9 * Steve French (sfrench@us.ibm.com)
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version
12 * 2 of the License, or (at your option) any later version.
13 */ 10 */
14 11
15#include <linux/dcache.h> 12#include <linux/dcache.h>
diff --git a/fs/cifs/cifs_unicode.c b/fs/cifs/cifs_unicode.c
index a2b2355e7f01..498777d859eb 100644
--- a/fs/cifs/cifs_unicode.c
+++ b/fs/cifs/cifs_unicode.c
@@ -1,22 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * fs/cifs/cifs_unicode.c 3 * fs/cifs/cifs_unicode.c
3 * 4 *
4 * Copyright (c) International Business Machines Corp., 2000,2009 5 * Copyright (c) International Business Machines Corp., 2000,2009
5 * Modified by Steve French (sfrench@us.ibm.com) 6 * Modified by Steve French (sfrench@us.ibm.com)
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
15 * the GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 7 */
21#include <linux/fs.h> 8#include <linux/fs.h>
22#include <linux/slab.h> 9#include <linux/slab.h>
diff --git a/fs/cifs/cifs_unicode.h b/fs/cifs/cifs_unicode.h
index 8360b74530a9..80b3d845419f 100644
--- a/fs/cifs/cifs_unicode.h
+++ b/fs/cifs/cifs_unicode.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * cifs_unicode: Unicode kernel case support 3 * cifs_unicode: Unicode kernel case support
3 * 4 *
@@ -7,28 +8,12 @@
7 * 8 *
8 * Copyright (c) International Business Machines Corp., 2000,2009 9 * Copyright (c) International Business Machines Corp., 2000,2009
9 * 10 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
18 * the GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 *
24 *
25 * Notes: 11 * Notes:
26 * These APIs are based on the C library functions. The semantics 12 * These APIs are based on the C library functions. The semantics
27 * should match the C functions but with expanded size operands. 13 * should match the C functions but with expanded size operands.
28 * 14 *
29 * The upper/lower functions are based on a table created by mkupr. 15 * The upper/lower functions are based on a table created by mkupr.
30 * This is a compressed table of upper and lower case conversion. 16 * This is a compressed table of upper and lower case conversion.
31 *
32 */ 17 */
33#ifndef _CIFS_UNICODE_H 18#ifndef _CIFS_UNICODE_H
34#define _CIFS_UNICODE_H 19#define _CIFS_UNICODE_H
diff --git a/fs/cifs/cifs_uniupr.h b/fs/cifs/cifs_uniupr.h
index 0ac7c5a8633a..7b272fcdf0d3 100644
--- a/fs/cifs/cifs_uniupr.h
+++ b/fs/cifs/cifs_uniupr.h
@@ -1,22 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (c) International Business Machines Corp., 2000,2002 3 * Copyright (c) International Business Machines Corp., 2000,2002
3 * 4 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 *
18 * uniupr.h - Unicode compressed case ranges 5 * uniupr.h - Unicode compressed case ranges
19 *
20*/ 6*/
21 7
22#ifndef UNIUPR_NOUPPER 8#ifndef UNIUPR_NOUPPER
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index f5fcd6360056..65d9771e49f9 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -303,6 +303,7 @@ cifs_alloc_inode(struct super_block *sb)
303 cifs_inode->uniqueid = 0; 303 cifs_inode->uniqueid = 0;
304 cifs_inode->createtime = 0; 304 cifs_inode->createtime = 0;
305 cifs_inode->epoch = 0; 305 cifs_inode->epoch = 0;
306 spin_lock_init(&cifs_inode->open_file_lock);
306 generate_random_uuid(cifs_inode->lease_key); 307 generate_random_uuid(cifs_inode->lease_key);
307 308
308 /* 309 /*
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index 334ff5f9c3f3..4777b3c4a92c 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -1377,6 +1377,7 @@ struct cifsInodeInfo {
1377 struct rw_semaphore lock_sem; /* protect the fields above */ 1377 struct rw_semaphore lock_sem; /* protect the fields above */
1378 /* BB add in lists for dirty pages i.e. write caching info for oplock */ 1378 /* BB add in lists for dirty pages i.e. write caching info for oplock */
1379 struct list_head openFileList; 1379 struct list_head openFileList;
1380 spinlock_t open_file_lock; /* protects openFileList */
1380 __u32 cifsAttrs; /* e.g. DOS archive bit, sparse, compressed, system */ 1381 __u32 cifsAttrs; /* e.g. DOS archive bit, sparse, compressed, system */
1381 unsigned int oplock; /* oplock/lease level we have */ 1382 unsigned int oplock; /* oplock/lease level we have */
1382 unsigned int epoch; /* used to track lease state changes */ 1383 unsigned int epoch; /* used to track lease state changes */
@@ -1780,10 +1781,14 @@ require use of the stronger protocol */
1780 * tcp_ses_lock protects: 1781 * tcp_ses_lock protects:
1781 * list operations on tcp and SMB session lists 1782 * list operations on tcp and SMB session lists
1782 * tcon->open_file_lock protects the list of open files hanging off the tcon 1783 * tcon->open_file_lock protects the list of open files hanging off the tcon
1784 * inode->open_file_lock protects the openFileList hanging off the inode
1783 * cfile->file_info_lock protects counters and fields in cifs file struct 1785 * cfile->file_info_lock protects counters and fields in cifs file struct
1784 * f_owner.lock protects certain per file struct operations 1786 * f_owner.lock protects certain per file struct operations
1785 * mapping->page_lock protects certain per page operations 1787 * mapping->page_lock protects certain per page operations
1786 * 1788 *
1789 * Note that the cifs_tcon.open_file_lock should be taken before
1790 * not after the cifsInodeInfo.open_file_lock
1791 *
1787 * Semaphores 1792 * Semaphores
1788 * ---------- 1793 * ----------
1789 * sesSem operations on smb session 1794 * sesSem operations on smb session
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 8c4121da624e..8dd6637a3cbb 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -476,6 +476,7 @@ cifs_reconnect(struct TCP_Server_Info *server)
476 spin_lock(&GlobalMid_Lock); 476 spin_lock(&GlobalMid_Lock);
477 server->nr_targets = 1; 477 server->nr_targets = 1;
478#ifdef CONFIG_CIFS_DFS_UPCALL 478#ifdef CONFIG_CIFS_DFS_UPCALL
479 spin_unlock(&GlobalMid_Lock);
479 cifs_sb = find_super_by_tcp(server); 480 cifs_sb = find_super_by_tcp(server);
480 if (IS_ERR(cifs_sb)) { 481 if (IS_ERR(cifs_sb)) {
481 rc = PTR_ERR(cifs_sb); 482 rc = PTR_ERR(cifs_sb);
@@ -493,6 +494,7 @@ cifs_reconnect(struct TCP_Server_Info *server)
493 } 494 }
494 cifs_dbg(FYI, "%s: will retry %d target(s)\n", __func__, 495 cifs_dbg(FYI, "%s: will retry %d target(s)\n", __func__,
495 server->nr_targets); 496 server->nr_targets);
497 spin_lock(&GlobalMid_Lock);
496#endif 498#endif
497 if (server->tcpStatus == CifsExiting) { 499 if (server->tcpStatus == CifsExiting) {
498 /* the demux thread will exit normally 500 /* the demux thread will exit normally
diff --git a/fs/cifs/dfs_cache.c b/fs/cifs/dfs_cache.c
index 85dc89d3a203..e3e1c13df439 100644
--- a/fs/cifs/dfs_cache.c
+++ b/fs/cifs/dfs_cache.c
@@ -132,7 +132,7 @@ static inline void flush_cache_ent(struct dfs_cache_entry *ce)
132 return; 132 return;
133 133
134 hlist_del_init_rcu(&ce->ce_hlist); 134 hlist_del_init_rcu(&ce->ce_hlist);
135 kfree(ce->ce_path); 135 kfree_const(ce->ce_path);
136 free_tgts(ce); 136 free_tgts(ce);
137 dfs_cache_count--; 137 dfs_cache_count--;
138 call_rcu(&ce->ce_rcu, free_cache_entry); 138 call_rcu(&ce->ce_rcu, free_cache_entry);
@@ -422,7 +422,7 @@ alloc_cache_entry(const char *path, const struct dfs_info3_param *refs,
422 422
423 rc = copy_ref_data(refs, numrefs, ce, NULL); 423 rc = copy_ref_data(refs, numrefs, ce, NULL);
424 if (rc) { 424 if (rc) {
425 kfree(ce->ce_path); 425 kfree_const(ce->ce_path);
426 kmem_cache_free(dfs_cache_slab, ce); 426 kmem_cache_free(dfs_cache_slab, ce);
427 ce = ERR_PTR(rc); 427 ce = ERR_PTR(rc);
428 } 428 }
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index ce9a5be11df5..97090693d182 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -338,10 +338,12 @@ cifs_new_fileinfo(struct cifs_fid *fid, struct file *file,
338 atomic_inc(&tcon->num_local_opens); 338 atomic_inc(&tcon->num_local_opens);
339 339
340 /* if readable file instance put first in list*/ 340 /* if readable file instance put first in list*/
341 spin_lock(&cinode->open_file_lock);
341 if (file->f_mode & FMODE_READ) 342 if (file->f_mode & FMODE_READ)
342 list_add(&cfile->flist, &cinode->openFileList); 343 list_add(&cfile->flist, &cinode->openFileList);
343 else 344 else
344 list_add_tail(&cfile->flist, &cinode->openFileList); 345 list_add_tail(&cfile->flist, &cinode->openFileList);
346 spin_unlock(&cinode->open_file_lock);
345 spin_unlock(&tcon->open_file_lock); 347 spin_unlock(&tcon->open_file_lock);
346 348
347 if (fid->purge_cache) 349 if (fid->purge_cache)
@@ -413,7 +415,9 @@ void _cifsFileInfo_put(struct cifsFileInfo *cifs_file, bool wait_oplock_handler)
413 cifs_add_pending_open_locked(&fid, cifs_file->tlink, &open); 415 cifs_add_pending_open_locked(&fid, cifs_file->tlink, &open);
414 416
415 /* remove it from the lists */ 417 /* remove it from the lists */
418 spin_lock(&cifsi->open_file_lock);
416 list_del(&cifs_file->flist); 419 list_del(&cifs_file->flist);
420 spin_unlock(&cifsi->open_file_lock);
417 list_del(&cifs_file->tlist); 421 list_del(&cifs_file->tlist);
418 atomic_dec(&tcon->num_local_opens); 422 atomic_dec(&tcon->num_local_opens);
419 423
@@ -1950,9 +1954,9 @@ refind_writable:
1950 return 0; 1954 return 0;
1951 } 1955 }
1952 1956
1953 spin_lock(&tcon->open_file_lock); 1957 spin_lock(&cifs_inode->open_file_lock);
1954 list_move_tail(&inv_file->flist, &cifs_inode->openFileList); 1958 list_move_tail(&inv_file->flist, &cifs_inode->openFileList);
1955 spin_unlock(&tcon->open_file_lock); 1959 spin_unlock(&cifs_inode->open_file_lock);
1956 cifsFileInfo_put(inv_file); 1960 cifsFileInfo_put(inv_file);
1957 ++refind; 1961 ++refind;
1958 inv_file = NULL; 1962 inv_file = NULL;
@@ -3216,7 +3220,9 @@ cifs_read_allocate_pages(struct cifs_readdata *rdata, unsigned int nr_pages)
3216 } 3220 }
3217 3221
3218 if (rc) { 3222 if (rc) {
3219 for (i = 0; i < nr_pages; i++) { 3223 unsigned int nr_page_failed = i;
3224
3225 for (i = 0; i < nr_page_failed; i++) {
3220 put_page(rdata->pages[i]); 3226 put_page(rdata->pages[i]);
3221 rdata->pages[i] = NULL; 3227 rdata->pages[i] = NULL;
3222 } 3228 }
diff --git a/fs/cifs/netmisc.c b/fs/cifs/netmisc.c
index fdd908e4a26b..ed92958e842d 100644
--- a/fs/cifs/netmisc.c
+++ b/fs/cifs/netmisc.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * fs/cifs/netmisc.c 3 * fs/cifs/netmisc.c
3 * 4 *
@@ -6,20 +7,6 @@
6 * 7 *
7 * Error mapping routines from Samba libsmb/errormap.c 8 * Error mapping routines from Samba libsmb/errormap.c
8 * Copyright (C) Andrew Tridgell 2001 9 * Copyright (C) Andrew Tridgell 2001
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
18 * the GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 */ 10 */
24 11
25#include <linux/net.h> 12#include <linux/net.h>
diff --git a/fs/cifs/nterr.c b/fs/cifs/nterr.c
index b6023c646123..358a766375b4 100644
--- a/fs/cifs/nterr.c
+++ b/fs/cifs/nterr.c
@@ -1,22 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Unix SMB/Netbios implementation. 3 * Unix SMB/Netbios implementation.
3 * Version 1.9. 4 * Version 1.9.
4 * RPC Pipe client / server routines 5 * RPC Pipe client / server routines
5 * Copyright (C) Luke Kenneth Casson Leighton 1997-2001. 6 * Copyright (C) Luke Kenneth Casson Leighton 1997-2001.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 */ 7 */
21 8
22/* NT error codes - see nterr.h */ 9/* NT error codes - see nterr.h */
diff --git a/fs/cifs/nterr.h b/fs/cifs/nterr.h
index 7a0eae5ae7c9..edd4741cab0a 100644
--- a/fs/cifs/nterr.h
+++ b/fs/cifs/nterr.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 Unix SMB/Netbios implementation. 3 Unix SMB/Netbios implementation.
3 Version 1.9. 4 Version 1.9.
@@ -7,19 +8,6 @@
7 Copyright (C) Luke Kenneth Casson Leighton 1996-2000 8 Copyright (C) Luke Kenneth Casson Leighton 1996-2000
8 Copyright (C) Paul Ashton 1998-2000 9 Copyright (C) Paul Ashton 1998-2000
9 10
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 2 of the License, or
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23*/ 11*/
24 12
25 13
diff --git a/fs/cifs/smb1ops.c b/fs/cifs/smb1ops.c
index c4e75afa3258..9e430ae9314f 100644
--- a/fs/cifs/smb1ops.c
+++ b/fs/cifs/smb1ops.c
@@ -1,20 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * SMB1 (CIFS) version specific operations 3 * SMB1 (CIFS) version specific operations
3 * 4 *
4 * Copyright (c) 2012, Jeff Layton <jlayton@redhat.com> 5 * Copyright (c) 2012, Jeff Layton <jlayton@redhat.com>
5 *
6 * This library is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License v2 as published
8 * by the Free Software Foundation.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 6 */
19 7
20#include <linux/pagemap.h> 8#include <linux/pagemap.h>
diff --git a/fs/cifs/smb2maperror.c b/fs/cifs/smb2maperror.c
index e32c264e3adb..82ade16c9501 100644
--- a/fs/cifs/smb2maperror.c
+++ b/fs/cifs/smb2maperror.c
@@ -457,7 +457,7 @@ static const struct status_to_posix_error smb2_error_map_table[] = {
457 {STATUS_FILE_INVALID, -EIO, "STATUS_FILE_INVALID"}, 457 {STATUS_FILE_INVALID, -EIO, "STATUS_FILE_INVALID"},
458 {STATUS_ALLOTTED_SPACE_EXCEEDED, -EIO, 458 {STATUS_ALLOTTED_SPACE_EXCEEDED, -EIO,
459 "STATUS_ALLOTTED_SPACE_EXCEEDED"}, 459 "STATUS_ALLOTTED_SPACE_EXCEEDED"},
460 {STATUS_INSUFFICIENT_RESOURCES, -EREMOTEIO, 460 {STATUS_INSUFFICIENT_RESOURCES, -EAGAIN,
461 "STATUS_INSUFFICIENT_RESOURCES"}, 461 "STATUS_INSUFFICIENT_RESOURCES"},
462 {STATUS_DFS_EXIT_PATH_FOUND, -EIO, "STATUS_DFS_EXIT_PATH_FOUND"}, 462 {STATUS_DFS_EXIT_PATH_FOUND, -EIO, "STATUS_DFS_EXIT_PATH_FOUND"},
463 {STATUS_DEVICE_DATA_ERROR, -EIO, "STATUS_DEVICE_DATA_ERROR"}, 463 {STATUS_DEVICE_DATA_ERROR, -EIO, "STATUS_DEVICE_DATA_ERROR"},
diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
index e921e6511728..3fdc6a41b304 100644
--- a/fs/cifs/smb2ops.c
+++ b/fs/cifs/smb2ops.c
@@ -3,19 +3,6 @@
3 * SMB2 version specific operations 3 * SMB2 version specific operations
4 * 4 *
5 * Copyright (c) 2012, Jeff Layton <jlayton@redhat.com> 5 * Copyright (c) 2012, Jeff Layton <jlayton@redhat.com>
6 *
7 * This library is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License v2 as published
9 * by the Free Software Foundation.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
14 * the GNU Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */ 6 */
20 7
21#include <linux/pagemap.h> 8#include <linux/pagemap.h>
diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
index 710ceb875161..75311a8a68bf 100644
--- a/fs/cifs/smb2pdu.c
+++ b/fs/cifs/smb2pdu.c
@@ -1054,7 +1054,8 @@ int smb3_validate_negotiate(const unsigned int xid, struct cifs_tcon *tcon)
1054 * not supported error. Client should accept it. 1054 * not supported error. Client should accept it.
1055 */ 1055 */
1056 cifs_dbg(VFS, "Server does not support validate negotiate\n"); 1056 cifs_dbg(VFS, "Server does not support validate negotiate\n");
1057 return 0; 1057 rc = 0;
1058 goto out_free_inbuf;
1058 } else if (rc != 0) { 1059 } else if (rc != 0) {
1059 cifs_dbg(VFS, "validate protocol negotiate failed: %d\n", rc); 1060 cifs_dbg(VFS, "validate protocol negotiate failed: %d\n", rc);
1060 rc = -EIO; 1061 rc = -EIO;
@@ -2619,10 +2620,12 @@ SMB2_ioctl_init(struct cifs_tcon *tcon, struct smb_rqst *rqst,
2619void 2620void
2620SMB2_ioctl_free(struct smb_rqst *rqst) 2621SMB2_ioctl_free(struct smb_rqst *rqst)
2621{ 2622{
2623 int i;
2622 if (rqst && rqst->rq_iov) { 2624 if (rqst && rqst->rq_iov) {
2623 cifs_small_buf_release(rqst->rq_iov[0].iov_base); /* request */ 2625 cifs_small_buf_release(rqst->rq_iov[0].iov_base); /* request */
2624 if (rqst->rq_iov[1].iov_len) 2626 for (i = 1; i < rqst->rq_nvec; i++)
2625 kfree(rqst->rq_iov[1].iov_base); 2627 if (rqst->rq_iov[i].iov_base != smb2_padding)
2628 kfree(rqst->rq_iov[i].iov_base);
2626 } 2629 }
2627} 2630}
2628 2631
@@ -3111,9 +3114,14 @@ void smb2_reconnect_server(struct work_struct *work)
3111 tcon_exist = true; 3114 tcon_exist = true;
3112 } 3115 }
3113 } 3116 }
3117 /*
3118 * IPC has the same lifetime as its session and uses its
3119 * refcount.
3120 */
3114 if (ses->tcon_ipc && ses->tcon_ipc->need_reconnect) { 3121 if (ses->tcon_ipc && ses->tcon_ipc->need_reconnect) {
3115 list_add_tail(&ses->tcon_ipc->rlist, &tmp_list); 3122 list_add_tail(&ses->tcon_ipc->rlist, &tmp_list);
3116 tcon_exist = true; 3123 tcon_exist = true;
3124 ses->ses_count++;
3117 } 3125 }
3118 } 3126 }
3119 /* 3127 /*
@@ -3132,7 +3140,10 @@ void smb2_reconnect_server(struct work_struct *work)
3132 else 3140 else
3133 resched = true; 3141 resched = true;
3134 list_del_init(&tcon->rlist); 3142 list_del_init(&tcon->rlist);
3135 cifs_put_tcon(tcon); 3143 if (tcon->ipc)
3144 cifs_put_smb_ses(tcon->ses);
3145 else
3146 cifs_put_tcon(tcon);
3136 } 3147 }
3137 3148
3138 cifs_dbg(FYI, "Reconnecting tcons finished\n"); 3149 cifs_dbg(FYI, "Reconnecting tcons finished\n");
diff --git a/fs/cifs/smbdirect.c b/fs/cifs/smbdirect.c
index caac37b1de8c..cd07e5301d42 100644
--- a/fs/cifs/smbdirect.c
+++ b/fs/cifs/smbdirect.c
@@ -1,17 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) 2017, Microsoft Corporation. 3 * Copyright (C) 2017, Microsoft Corporation.
3 * 4 *
4 * Author(s): Long Li <longli@microsoft.com> 5 * Author(s): Long Li <longli@microsoft.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
14 * the GNU General Public License for more details.
15 */ 6 */
16#include <linux/module.h> 7#include <linux/module.h>
17#include <linux/highmem.h> 8#include <linux/highmem.h>
diff --git a/fs/cifs/smbdirect.h b/fs/cifs/smbdirect.h
index f6241b8bce5f..6ff880a1e186 100644
--- a/fs/cifs/smbdirect.h
+++ b/fs/cifs/smbdirect.h
@@ -1,17 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) 2017, Microsoft Corporation. 3 * Copyright (C) 2017, Microsoft Corporation.
3 * 4 *
4 * Author(s): Long Li <longli@microsoft.com> 5 * Author(s): Long Li <longli@microsoft.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
14 * the GNU General Public License for more details.
15 */ 6 */
16#ifndef _SMBDIRECT_H 7#ifndef _SMBDIRECT_H
17#define _SMBDIRECT_H 8#define _SMBDIRECT_H
diff --git a/fs/cifs/smbencrypt.c b/fs/cifs/smbencrypt.c
index a0b80ac651a6..2b6d87bfdf8e 100644
--- a/fs/cifs/smbencrypt.c
+++ b/fs/cifs/smbencrypt.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 Unix SMB/Netbios implementation. 3 Unix SMB/Netbios implementation.
3 Version 1.9. 4 Version 1.9.
@@ -8,19 +9,6 @@
8 Copyright (C) Andrew Bartlett <abartlet@samba.org> 2002-2003 9 Copyright (C) Andrew Bartlett <abartlet@samba.org> 2002-2003
9 Modified by Steve French (sfrench@us.ibm.com) 2002-2003 10 Modified by Steve French (sfrench@us.ibm.com) 2002-2003
10 11
11 This program is free software; you can redistribute it and/or modify
12 it under the terms of the GNU General Public License as published by
13 the Free Software Foundation; either version 2 of the License, or
14 (at your option) any later version.
15
16 This program is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 GNU General Public License for more details.
20
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, write to the Free Software
23 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24*/ 12*/
25 13
26#include <linux/crypto.h> 14#include <linux/crypto.h>
diff --git a/fs/cifs/winucase.c b/fs/cifs/winucase.c
index 1506d4fddb2c..1a23a1d2ebf9 100644
--- a/fs/cifs/winucase.c
+++ b/fs/cifs/winucase.c
@@ -1,22 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * fs/cifs/winucase.c 3 * fs/cifs/winucase.c
3 * 4 *
4 * Copyright (c) Jeffrey Layton <jlayton@redhat.com>, 2013 5 * Copyright (c) Jeffrey Layton <jlayton@redhat.com>, 2013
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
14 * the GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 * The const tables in this file were converted from the following info 7 * The const tables in this file were converted from the following info
21 * provided by Microsoft: 8 * provided by Microsoft:
22 * 9 *
diff --git a/fs/coda/Kconfig b/fs/coda/Kconfig
index c0e5a7fad06d..ae6759f9594a 100644
--- a/fs/coda/Kconfig
+++ b/fs/coda/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config CODA_FS 2config CODA_FS
2 tristate "Coda file system support (advanced network fs)" 3 tristate "Coda file system support (advanced network fs)"
3 depends on INET 4 depends on INET
diff --git a/fs/coda/Makefile b/fs/coda/Makefile
index 1bab69a0d347..1ce66819da2a 100644
--- a/fs/coda/Makefile
+++ b/fs/coda/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the Linux Coda filesystem routines. 3# Makefile for the Linux Coda filesystem routines.
3# 4#
diff --git a/fs/coda/psdev.c b/fs/coda/psdev.c
index f2bb7985d21c..0ceef32e6fae 100644
--- a/fs/coda/psdev.c
+++ b/fs/coda/psdev.c
@@ -1,13 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * An implementation of a loadable kernel mode driver providing 3 * An implementation of a loadable kernel mode driver providing
3 * multiple kernel/user space bidirectional communications links. 4 * multiple kernel/user space bidirectional communications links.
4 * 5 *
5 * Author: Alan Cox <alan@lxorguk.ukuu.org.uk> 6 * Author: Alan Cox <alan@lxorguk.ukuu.org.uk>
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version
10 * 2 of the License, or (at your option) any later version.
11 * 7 *
12 * Adapted to become the Linux 2.0 Coda pseudo device 8 * Adapted to become the Linux 2.0 Coda pseudo device
13 * Peter Braam <braam@maths.ox.ac.uk> 9 * Peter Braam <braam@maths.ox.ac.uk>
diff --git a/fs/compat.c b/fs/compat.c
index 4a0aaaf53217..436d228cf71c 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/compat.c 3 * linux/fs/compat.c
3 * 4 *
@@ -9,10 +10,6 @@
9 * Copyright (C) 1998 Eddie C. Dost (ecd@skynet.be) 10 * Copyright (C) 1998 Eddie C. Dost (ecd@skynet.be)
10 * Copyright (C) 2001,2002 Andi Kleen, SuSE Labs 11 * Copyright (C) 2001,2002 Andi Kleen, SuSE Labs
11 * Copyright (C) 2003 Pavel Machek (pavel@ucw.cz) 12 * Copyright (C) 2003 Pavel Machek (pavel@ucw.cz)
12 *
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License version 2 as
15 * published by the Free Software Foundation.
16 */ 13 */
17 14
18#include <linux/compat.h> 15#include <linux/compat.h>
diff --git a/fs/compat_binfmt_elf.c b/fs/compat_binfmt_elf.c
index 15f6e96b3bd9..b7f9ffa1d5f1 100644
--- a/fs/compat_binfmt_elf.c
+++ b/fs/compat_binfmt_elf.c
@@ -1,12 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * 32-bit compatibility support for ELF format executables and core dumps. 3 * 32-bit compatibility support for ELF format executables and core dumps.
3 * 4 *
4 * Copyright (C) 2007 Red Hat, Inc. All rights reserved. 5 * Copyright (C) 2007 Red Hat, Inc. All rights reserved.
5 * 6 *
6 * This copyrighted material is made available to anyone wishing to use,
7 * modify, copy, or redistribute it subject to the terms and conditions
8 * of the GNU General Public License v.2.
9 *
10 * Red Hat Author: Roland McGrath. 7 * Red Hat Author: Roland McGrath.
11 * 8 *
12 * This file is used in a 64-bit kernel that wants to support 32-bit ELF. 9 * This file is used in a 64-bit kernel that wants to support 32-bit ELF.
diff --git a/fs/configfs/Kconfig b/fs/configfs/Kconfig
index 9febcdefdfdc..272b64456999 100644
--- a/fs/configfs/Kconfig
+++ b/fs/configfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config CONFIGFS_FS 2config CONFIGFS_FS
2 tristate "Userspace-driven configuration filesystem" 3 tristate "Userspace-driven configuration filesystem"
3 select SYSFS 4 select SYSFS
diff --git a/fs/configfs/Makefile b/fs/configfs/Makefile
index 00ffb278e98c..0200498ede27 100644
--- a/fs/configfs/Makefile
+++ b/fs/configfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the configfs virtual filesystem 3# Makefile for the configfs virtual filesystem
3# 4#
diff --git a/fs/configfs/configfs_internal.h b/fs/configfs/configfs_internal.h
index ccc31fa6f1a7..f752d83a9c44 100644
--- a/fs/configfs/configfs_internal.h
+++ b/fs/configfs/configfs_internal.h
@@ -1,23 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset:8; -*- 2/* -*- mode: c; c-basic-offset:8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * configfs_internal.h - Internal stuff for configfs 5 * configfs_internal.h - Internal stuff for configfs
5 * 6 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA.
20 *
21 * Based on sysfs: 7 * Based on sysfs:
22 * sysfs is Copyright (C) 2001, 2002, 2003 Patrick Mochel 8 * sysfs is Copyright (C) 2001, 2002, 2003 Patrick Mochel
23 * 9 *
diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
index 5e7932d668ab..d2ca5287762d 100644
--- a/fs/configfs/dir.c
+++ b/fs/configfs/dir.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * dir.c - Operations for configfs directories. 5 * dir.c - Operations for configfs directories.
5 * 6 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA.
20 *
21 * Based on sysfs: 7 * Based on sysfs:
22 * sysfs is Copyright (C) 2001, 2002, 2003 Patrick Mochel 8 * sysfs is Copyright (C) 2001, 2002, 2003 Patrick Mochel
23 * 9 *
@@ -58,15 +44,13 @@ static void configfs_d_iput(struct dentry * dentry,
58 if (sd) { 44 if (sd) {
59 /* Coordinate with configfs_readdir */ 45 /* Coordinate with configfs_readdir */
60 spin_lock(&configfs_dirent_lock); 46 spin_lock(&configfs_dirent_lock);
61 /* Coordinate with configfs_attach_attr where will increase 47 /*
62 * sd->s_count and update sd->s_dentry to new allocated one. 48 * Set sd->s_dentry to null only when this dentry is the one
63 * Only set sd->dentry to null when this dentry is the only 49 * that is going to be killed. Otherwise configfs_d_iput may
64 * sd owner. 50 * run just after configfs_attach_attr and set sd->s_dentry to
65 * If not do so, configfs_d_iput may run just after 51 * NULL even it's still in use.
66 * configfs_attach_attr and set sd->s_dentry to null
67 * even it's still in use.
68 */ 52 */
69 if (atomic_read(&sd->s_count) <= 2) 53 if (sd->s_dentry == dentry)
70 sd->s_dentry = NULL; 54 sd->s_dentry = NULL;
71 55
72 spin_unlock(&configfs_dirent_lock); 56 spin_unlock(&configfs_dirent_lock);
diff --git a/fs/configfs/file.c b/fs/configfs/file.c
index 62580dba3552..61e4db4390a1 100644
--- a/fs/configfs/file.c
+++ b/fs/configfs/file.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * file.c - operations for regular (text) files. 5 * file.c - operations for regular (text) files.
5 * 6 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA.
20 *
21 * Based on sysfs: 7 * Based on sysfs:
22 * sysfs is Copyright (C) 2001, 2002, 2003 Patrick Mochel 8 * sysfs is Copyright (C) 2001, 2002, 2003 Patrick Mochel
23 * 9 *
diff --git a/fs/configfs/inode.c b/fs/configfs/inode.c
index 28ef9e528853..ab0284321912 100644
--- a/fs/configfs/inode.c
+++ b/fs/configfs/inode.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * inode.c - basic inode and dentry operations. 5 * inode.c - basic inode and dentry operations.
5 * 6 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA.
20 *
21 * Based on sysfs: 7 * Based on sysfs:
22 * sysfs is Copyright (C) 2001, 2002, 2003 Patrick Mochel 8 * sysfs is Copyright (C) 2001, 2002, 2003 Patrick Mochel
23 * 9 *
diff --git a/fs/configfs/item.c b/fs/configfs/item.c
index 99d491cd01f9..6e0f1fcb8a5b 100644
--- a/fs/configfs/item.c
+++ b/fs/configfs/item.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * item.c - library routines for handling generic config items 5 * item.c - library routines for handling generic config items
5 * 6 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA.
20 *
21 * Based on kobject: 7 * Based on kobject:
22 * kobject is Copyright (c) 2002-2003 Patrick Mochel 8 * kobject is Copyright (c) 2002-2003 Patrick Mochel
23 * 9 *
diff --git a/fs/configfs/mount.c b/fs/configfs/mount.c
index cfd91320e869..791304fdde9d 100644
--- a/fs/configfs/mount.c
+++ b/fs/configfs/mount.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * mount.c - operations for initializing and mounting configfs. 5 * mount.c - operations for initializing and mounting configfs.
5 * 6 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA.
20 *
21 * Based on sysfs: 7 * Based on sysfs:
22 * sysfs is Copyright (C) 2001, 2002, 2003 Patrick Mochel 8 * sysfs is Copyright (C) 2001, 2002, 2003 Patrick Mochel
23 * 9 *
diff --git a/fs/configfs/symlink.c b/fs/configfs/symlink.c
index a5c54af861f7..91eac6c55e07 100644
--- a/fs/configfs/symlink.c
+++ b/fs/configfs/symlink.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * symlink.c - operations for configfs symlinks. 5 * symlink.c - operations for configfs symlinks.
5 * 6 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA.
20 *
21 * Based on sysfs: 7 * Based on sysfs:
22 * sysfs is Copyright (C) 2001, 2002, 2003 Patrick Mochel 8 * sysfs is Copyright (C) 2001, 2002, 2003 Patrick Mochel
23 * 9 *
diff --git a/fs/cramfs/Kconfig b/fs/cramfs/Kconfig
index 5933f995309a..c8bebb70a971 100644
--- a/fs/cramfs/Kconfig
+++ b/fs/cramfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config CRAMFS 2config CRAMFS
2 tristate "Compressed ROM file system support (cramfs)" 3 tristate "Compressed ROM file system support (cramfs)"
3 select ZLIB_INFLATE 4 select ZLIB_INFLATE
diff --git a/fs/cramfs/Makefile b/fs/cramfs/Makefile
index 92ebb464a725..8c3ed2982419 100644
--- a/fs/cramfs/Makefile
+++ b/fs/cramfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the linux cramfs routines. 3# Makefile for the linux cramfs routines.
3# 4#
diff --git a/fs/crypto/Kconfig b/fs/crypto/Kconfig
index f0de238000c0..24ed99e2eca0 100644
--- a/fs/crypto/Kconfig
+++ b/fs/crypto/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config FS_ENCRYPTION 2config FS_ENCRYPTION
2 bool "FS Encryption (Per-file encryption)" 3 bool "FS Encryption (Per-file encryption)"
3 select CRYPTO 4 select CRYPTO
diff --git a/fs/crypto/Makefile b/fs/crypto/Makefile
index cb496989a6b6..4f0df5e682e4 100644
--- a/fs/crypto/Makefile
+++ b/fs/crypto/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1obj-$(CONFIG_FS_ENCRYPTION) += fscrypto.o 2obj-$(CONFIG_FS_ENCRYPTION) += fscrypto.o
2 3
3fscrypto-y := crypto.o fname.o hooks.o keyinfo.o policy.o 4fscrypto-y := crypto.o fname.o hooks.o keyinfo.o policy.o
diff --git a/fs/crypto/crypto.c b/fs/crypto/crypto.c
index 68e2ca4c4af6..335a362ee446 100644
--- a/fs/crypto/crypto.c
+++ b/fs/crypto/crypto.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This contains encryption functions for per-file encryption. 3 * This contains encryption functions for per-file encryption.
3 * 4 *
diff --git a/fs/crypto/hooks.c b/fs/crypto/hooks.c
index 2dc22549d724..bd525f7573a4 100644
--- a/fs/crypto/hooks.c
+++ b/fs/crypto/hooks.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/crypto/hooks.c 3 * fs/crypto/hooks.c
3 * 4 *
diff --git a/fs/dax.c b/fs/dax.c
index f74386293632..2e48c7ebb973 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -1,17 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/dax.c - Direct Access filesystem code 3 * fs/dax.c - Direct Access filesystem code
3 * Copyright (c) 2013-2014 Intel Corporation 4 * Copyright (c) 2013-2014 Intel Corporation
4 * Author: Matthew Wilcox <matthew.r.wilcox@intel.com> 5 * Author: Matthew Wilcox <matthew.r.wilcox@intel.com>
5 * Author: Ross Zwisler <ross.zwisler@linux.intel.com> 6 * Author: Ross Zwisler <ross.zwisler@linux.intel.com>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms and conditions of the GNU General Public License,
9 * version 2, as published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 * more details.
15 */ 7 */
16 8
17#include <linux/atomic.h> 9#include <linux/atomic.h>
diff --git a/fs/dcache.c b/fs/dcache.c
index 8136bda27a1f..c435398f2c81 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/dcache.c 3 * fs/dcache.c
3 * 4 *
diff --git a/fs/dcookies.c b/fs/dcookies.c
index 57bc96435feb..6eeb61100a09 100644
--- a/fs/dcookies.c
+++ b/fs/dcookies.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * dcookies.c 3 * dcookies.c
3 * 4 *
diff --git a/fs/debugfs/Makefile b/fs/debugfs/Makefile
index 840c45696668..9c0fe38cfb5e 100644
--- a/fs/debugfs/Makefile
+++ b/fs/debugfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1debugfs-objs := inode.o file.o 2debugfs-objs := inode.o file.o
2 3
3obj-$(CONFIG_DEBUG_FS) += debugfs.o 4obj-$(CONFIG_DEBUG_FS) += debugfs.o
diff --git a/fs/devpts/Makefile b/fs/devpts/Makefile
index 236696efcbac..66064c8fcb3e 100644
--- a/fs/devpts/Makefile
+++ b/fs/devpts/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the Linux /dev/pts virtual filesystem. 3# Makefile for the Linux /dev/pts virtual filesystem.
3# 4#
diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c
index 553a3f3300ae..2c14ae044dce 100644
--- a/fs/devpts/inode.c
+++ b/fs/devpts/inode.c
@@ -1,13 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- linux-c -*- --------------------------------------------------------- * 2/* -*- linux-c -*- --------------------------------------------------------- *
2 * 3 *
3 * linux/fs/devpts/inode.c 4 * linux/fs/devpts/inode.c
4 * 5 *
5 * Copyright 1998-2004 H. Peter Anvin -- All Rights Reserved 6 * Copyright 1998-2004 H. Peter Anvin -- All Rights Reserved
6 * 7 *
7 * This file is part of the Linux kernel and is made available under
8 * the terms of the GNU General Public License, version 2, or at your
9 * option, any later version, incorporated herein by reference.
10 *
11 * ------------------------------------------------------------------------- */ 8 * ------------------------------------------------------------------------- */
12 9
13#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 10#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/fs/direct-io.c b/fs/direct-io.c
index fbe885d68035..ac7fb19b6ade 100644
--- a/fs/direct-io.c
+++ b/fs/direct-io.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/direct-io.c 3 * fs/direct-io.c
3 * 4 *
diff --git a/fs/dlm/Kconfig b/fs/dlm/Kconfig
index e4242c3f8486..f82a4952769d 100644
--- a/fs/dlm/Kconfig
+++ b/fs/dlm/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1menuconfig DLM 2menuconfig DLM
2 tristate "Distributed Lock Manager (DLM)" 3 tristate "Distributed Lock Manager (DLM)"
3 depends on INET 4 depends on INET
diff --git a/fs/dlm/ast.c b/fs/dlm/ast.c
index 47ee66d70109..283c7b94edda 100644
--- a/fs/dlm/ast.c
+++ b/fs/dlm/ast.c
@@ -1,12 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2010 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2010 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/ast.h b/fs/dlm/ast.h
index 757b551c6820..181ad7d20c4d 100644
--- a/fs/dlm/ast.h
+++ b/fs/dlm/ast.h
@@ -1,11 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) 2005-2010 Red Hat, Inc. All rights reserved. 5** Copyright (C) 2005-2010 Red Hat, Inc. All rights reserved.
5** 6**
6** This copyrighted material is made available to anyone wishing to use,
7** modify, copy, or redistribute it subject to the terms and conditions
8** of the GNU General Public License v.2.
9** 7**
10******************************************************************************* 8*******************************************************************************
11******************************************************************************/ 9******************************************************************************/
diff --git a/fs/dlm/config.c b/fs/dlm/config.c
index 1270551d24e3..3b21082e1b55 100644
--- a/fs/dlm/config.c
+++ b/fs/dlm/config.c
@@ -1,12 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/config.h b/fs/dlm/config.h
index 6041eec886ab..2b471aae4e61 100644
--- a/fs/dlm/config.h
+++ b/fs/dlm/config.h
@@ -1,12 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/debug_fs.c b/fs/dlm/debug_fs.c
index fa08448e35dd..0e941d42e3e9 100644
--- a/fs/dlm/debug_fs.c
+++ b/fs/dlm/debug_fs.c
@@ -1,11 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) 2005-2009 Red Hat, Inc. All rights reserved. 5** Copyright (C) 2005-2009 Red Hat, Inc. All rights reserved.
5** 6**
6** This copyrighted material is made available to anyone wishing to use,
7** modify, copy, or redistribute it subject to the terms and conditions
8** of the GNU General Public License v.2.
9** 7**
10******************************************************************************* 8*******************************************************************************
11******************************************************************************/ 9******************************************************************************/
diff --git a/fs/dlm/dir.c b/fs/dlm/dir.c
index d975851a7e1e..10c36ae1a8f9 100644
--- a/fs/dlm/dir.c
+++ b/fs/dlm/dir.c
@@ -1,12 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/dir.h b/fs/dlm/dir.h
index 417506344456..03844d086be2 100644
--- a/fs/dlm/dir.h
+++ b/fs/dlm/dir.h
@@ -1,12 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/dlm_internal.h b/fs/dlm/dlm_internal.h
index 748e8d59e611..da1173a0b274 100644
--- a/fs/dlm/dlm_internal.h
+++ b/fs/dlm/dlm_internal.h
@@ -1,12 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
index a928ba008d7d..18d81599522f 100644
--- a/fs/dlm/lock.c
+++ b/fs/dlm/lock.c
@@ -1,11 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) 2005-2010 Red Hat, Inc. All rights reserved. 5** Copyright (C) 2005-2010 Red Hat, Inc. All rights reserved.
5** 6**
6** This copyrighted material is made available to anyone wishing to use,
7** modify, copy, or redistribute it subject to the terms and conditions
8** of the GNU General Public License v.2.
9** 7**
10******************************************************************************* 8*******************************************************************************
11******************************************************************************/ 9******************************************************************************/
diff --git a/fs/dlm/lock.h b/fs/dlm/lock.h
index ed8ebd3a8593..456c6ec3ef6f 100644
--- a/fs/dlm/lock.h
+++ b/fs/dlm/lock.h
@@ -1,11 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) 2005-2007 Red Hat, Inc. All rights reserved. 5** Copyright (C) 2005-2007 Red Hat, Inc. All rights reserved.
5** 6**
6** This copyrighted material is made available to anyone wishing to use,
7** modify, copy, or redistribute it subject to the terms and conditions
8** of the GNU General Public License v.2.
9** 7**
10******************************************************************************* 8*******************************************************************************
11******************************************************************************/ 9******************************************************************************/
diff --git a/fs/dlm/lockspace.c b/fs/dlm/lockspace.c
index db43b98c4d64..4c2c85a223ac 100644
--- a/fs/dlm/lockspace.c
+++ b/fs/dlm/lockspace.c
@@ -1,12 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/lockspace.h b/fs/dlm/lockspace.h
index f879f87901f8..a78d853b9342 100644
--- a/fs/dlm/lockspace.h
+++ b/fs/dlm/lockspace.h
@@ -1,12 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index c98ad9777ad9..114ebfe30929 100644
--- a/fs/dlm/lowcomms.c
+++ b/fs/dlm/lowcomms.c
@@ -1,12 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/lowcomms.h b/fs/dlm/lowcomms.h
index 67462e54fc2f..687b2894e469 100644
--- a/fs/dlm/lowcomms.h
+++ b/fs/dlm/lowcomms.h
@@ -1,12 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/lvb_table.h b/fs/dlm/lvb_table.h
index cc3e92f3feef..09052d967174 100644
--- a/fs/dlm/lvb_table.h
+++ b/fs/dlm/lvb_table.h
@@ -1,11 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) 2005 Red Hat, Inc. All rights reserved. 5** Copyright (C) 2005 Red Hat, Inc. All rights reserved.
5** 6**
6** This copyrighted material is made available to anyone wishing to use,
7** modify, copy, or redistribute it subject to the terms and conditions
8** of the GNU General Public License v.2.
9** 7**
10******************************************************************************* 8*******************************************************************************
11******************************************************************************/ 9******************************************************************************/
diff --git a/fs/dlm/main.c b/fs/dlm/main.c
index 8e1b618891be..39579927ed84 100644
--- a/fs/dlm/main.c
+++ b/fs/dlm/main.c
@@ -1,12 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/member.c b/fs/dlm/member.c
index 0bc43b35d2c5..7ad83deb4505 100644
--- a/fs/dlm/member.c
+++ b/fs/dlm/member.c
@@ -1,11 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) 2005-2011 Red Hat, Inc. All rights reserved. 5** Copyright (C) 2005-2011 Red Hat, Inc. All rights reserved.
5** 6**
6** This copyrighted material is made available to anyone wishing to use,
7** modify, copy, or redistribute it subject to the terms and conditions
8** of the GNU General Public License v.2.
9** 7**
10******************************************************************************* 8*******************************************************************************
11******************************************************************************/ 9******************************************************************************/
diff --git a/fs/dlm/member.h b/fs/dlm/member.h
index 3deb70661c69..433b2fac9f4a 100644
--- a/fs/dlm/member.h
+++ b/fs/dlm/member.h
@@ -1,11 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) 2005-2011 Red Hat, Inc. All rights reserved. 5** Copyright (C) 2005-2011 Red Hat, Inc. All rights reserved.
5** 6**
6** This copyrighted material is made available to anyone wishing to use,
7** modify, copy, or redistribute it subject to the terms and conditions
8** of the GNU General Public License v.2.
9** 7**
10******************************************************************************* 8*******************************************************************************
11******************************************************************************/ 9******************************************************************************/
diff --git a/fs/dlm/memory.c b/fs/dlm/memory.c
index 37be29f21d04..5918f4d39586 100644
--- a/fs/dlm/memory.c
+++ b/fs/dlm/memory.c
@@ -1,12 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/memory.h b/fs/dlm/memory.h
index 177c11cbb0a6..4f218ea4b187 100644
--- a/fs/dlm/memory.h
+++ b/fs/dlm/memory.h
@@ -1,12 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/midcomms.c b/fs/dlm/midcomms.c
index f3396c622aec..921322d133e3 100644
--- a/fs/dlm/midcomms.c
+++ b/fs/dlm/midcomms.c
@@ -1,12 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/midcomms.h b/fs/dlm/midcomms.h
index 95852a5f111d..2e122e81c8d0 100644
--- a/fs/dlm/midcomms.h
+++ b/fs/dlm/midcomms.h
@@ -1,12 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/netlink.c b/fs/dlm/netlink.c
index d8e27defa89f..e7f550327d5d 100644
--- a/fs/dlm/netlink.c
+++ b/fs/dlm/netlink.c
@@ -1,9 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) 2007 Red Hat, Inc. All rights reserved. 3 * Copyright (C) 2007 Red Hat, Inc. All rights reserved.
3 *
4 * This copyrighted material is made available to anyone wishing to use,
5 * modify, copy, or redistribute it subject to the terms and conditions
6 * of the GNU General Public License v.2.
7 */ 4 */
8 5
9#include <net/genetlink.h> 6#include <net/genetlink.h>
diff --git a/fs/dlm/plock.c b/fs/dlm/plock.c
index c7d5a2ea3d03..c38b2b8ffd1d 100644
--- a/fs/dlm/plock.c
+++ b/fs/dlm/plock.c
@@ -1,9 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved. 3 * Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved.
3 *
4 * This copyrighted material is made available to anyone wishing to use,
5 * modify, copy, or redistribute it subject to the terms and conditions
6 * of the GNU General Public License version 2.
7 */ 4 */
8 5
9#include <linux/fs.h> 6#include <linux/fs.h>
diff --git a/fs/dlm/rcom.c b/fs/dlm/rcom.c
index 70c625999d36..e3d9f72c640d 100644
--- a/fs/dlm/rcom.c
+++ b/fs/dlm/rcom.c
@@ -1,12 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/rcom.h b/fs/dlm/rcom.h
index 206723ab744d..454d3c4814ab 100644
--- a/fs/dlm/rcom.h
+++ b/fs/dlm/rcom.h
@@ -1,12 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2005-2007 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2005-2007 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/recover.c b/fs/dlm/recover.c
index ce2aa54ca2e2..8928e99dfd47 100644
--- a/fs/dlm/recover.c
+++ b/fs/dlm/recover.c
@@ -1,12 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/recover.h b/fs/dlm/recover.h
index d8c8738c70eb..235e0d25cd48 100644
--- a/fs/dlm/recover.h
+++ b/fs/dlm/recover.h
@@ -1,12 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/recoverd.c b/fs/dlm/recoverd.c
index 6f4e1d42d733..85e245392715 100644
--- a/fs/dlm/recoverd.c
+++ b/fs/dlm/recoverd.c
@@ -1,12 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/recoverd.h b/fs/dlm/recoverd.h
index 8856079733fa..d1944dc5f9e6 100644
--- a/fs/dlm/recoverd.h
+++ b/fs/dlm/recoverd.h
@@ -1,12 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved. 6** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved.
6** 7**
7** This copyrighted material is made available to anyone wishing to use,
8** modify, copy, or redistribute it subject to the terms and conditions
9** of the GNU General Public License v.2.
10** 8**
11******************************************************************************* 9*******************************************************************************
12******************************************************************************/ 10******************************************************************************/
diff --git a/fs/dlm/requestqueue.c b/fs/dlm/requestqueue.c
index 1695f1b0dd45..e89e0ff8bfa3 100644
--- a/fs/dlm/requestqueue.c
+++ b/fs/dlm/requestqueue.c
@@ -1,11 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) 2005-2007 Red Hat, Inc. All rights reserved. 5** Copyright (C) 2005-2007 Red Hat, Inc. All rights reserved.
5** 6**
6** This copyrighted material is made available to anyone wishing to use,
7** modify, copy, or redistribute it subject to the terms and conditions
8** of the GNU General Public License v.2.
9** 7**
10******************************************************************************* 8*******************************************************************************
11******************************************************************************/ 9******************************************************************************/
diff --git a/fs/dlm/requestqueue.h b/fs/dlm/requestqueue.h
index 10ce449b77da..4e403469a845 100644
--- a/fs/dlm/requestqueue.h
+++ b/fs/dlm/requestqueue.h
@@ -1,11 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) 2005-2007 Red Hat, Inc. All rights reserved. 5** Copyright (C) 2005-2007 Red Hat, Inc. All rights reserved.
5** 6**
6** This copyrighted material is made available to anyone wishing to use,
7** modify, copy, or redistribute it subject to the terms and conditions
8** of the GNU General Public License v.2.
9** 7**
10******************************************************************************* 8*******************************************************************************
11******************************************************************************/ 9******************************************************************************/
diff --git a/fs/dlm/user.c b/fs/dlm/user.c
index 3c84c62dadb7..5264bac75115 100644
--- a/fs/dlm/user.c
+++ b/fs/dlm/user.c
@@ -1,9 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) 2006-2010 Red Hat, Inc. All rights reserved. 3 * Copyright (C) 2006-2010 Red Hat, Inc. All rights reserved.
3 *
4 * This copyrighted material is made available to anyone wishing to use,
5 * modify, copy, or redistribute it subject to the terms and conditions
6 * of the GNU General Public License v.2.
7 */ 4 */
8 5
9#include <linux/miscdevice.h> 6#include <linux/miscdevice.h>
diff --git a/fs/dlm/user.h b/fs/dlm/user.h
index 00499ab8835f..6b9bce6b96e0 100644
--- a/fs/dlm/user.h
+++ b/fs/dlm/user.h
@@ -1,9 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) 2006-2010 Red Hat, Inc. All rights reserved. 3 * Copyright (C) 2006-2010 Red Hat, Inc. All rights reserved.
3 *
4 * This copyrighted material is made available to anyone wishing to use,
5 * modify, copy, or redistribute it subject to the terms and conditions
6 * of the GNU General Public License v.2.
7 */ 4 */
8 5
9#ifndef __USER_DOT_H__ 6#ifndef __USER_DOT_H__
diff --git a/fs/dlm/util.c b/fs/dlm/util.c
index e36520af7cc0..cfd0d00b19ae 100644
--- a/fs/dlm/util.c
+++ b/fs/dlm/util.c
@@ -1,11 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved. 5** Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved.
5** 6**
6** This copyrighted material is made available to anyone wishing to use,
7** modify, copy, or redistribute it subject to the terms and conditions
8** of the GNU General Public License v.2.
9** 7**
10******************************************************************************* 8*******************************************************************************
11******************************************************************************/ 9******************************************************************************/
diff --git a/fs/dlm/util.h b/fs/dlm/util.h
index 2b25915161c0..cc719ca9397e 100644
--- a/fs/dlm/util.h
+++ b/fs/dlm/util.h
@@ -1,11 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/****************************************************************************** 2/******************************************************************************
2******************************************************************************* 3*******************************************************************************
3** 4**
4** Copyright (C) 2005 Red Hat, Inc. All rights reserved. 5** Copyright (C) 2005 Red Hat, Inc. All rights reserved.
5** 6**
6** This copyrighted material is made available to anyone wishing to use,
7** modify, copy, or redistribute it subject to the terms and conditions
8** of the GNU General Public License v.2.
9** 7**
10******************************************************************************* 8*******************************************************************************
11******************************************************************************/ 9******************************************************************************/
diff --git a/fs/ecryptfs/Kconfig b/fs/ecryptfs/Kconfig
index 434aa313f077..522c35d5292b 100644
--- a/fs/ecryptfs/Kconfig
+++ b/fs/ecryptfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config ECRYPT_FS 2config ECRYPT_FS
2 tristate "eCrypt filesystem layer support" 3 tristate "eCrypt filesystem layer support"
3 depends on KEYS && CRYPTO && (ENCRYPTED_KEYS || ENCRYPTED_KEYS=n) 4 depends on KEYS && CRYPTO && (ENCRYPTED_KEYS || ENCRYPTED_KEYS=n)
diff --git a/fs/ecryptfs/Makefile b/fs/ecryptfs/Makefile
index 49678a69947d..4f2cc5b2542d 100644
--- a/fs/ecryptfs/Makefile
+++ b/fs/ecryptfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the Linux eCryptfs 3# Makefile for the Linux eCryptfs
3# 4#
diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
index 491cf5baa8c2..91d65f337d87 100644
--- a/fs/ecryptfs/crypto.c
+++ b/fs/ecryptfs/crypto.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * eCryptfs: Linux filesystem encryption layer 3 * eCryptfs: Linux filesystem encryption layer
3 * 4 *
@@ -6,21 +7,6 @@
6 * Copyright (C) 2004-2007 International Business Machines Corp. 7 * Copyright (C) 2004-2007 International Business Machines Corp.
7 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com> 8 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com>
8 * Michael C. Thompson <mcthomps@us.ibm.com> 9 * Michael C. Thompson <mcthomps@us.ibm.com>
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
23 * 02111-1307, USA.
24 */ 10 */
25 11
26#include <crypto/hash.h> 12#include <crypto/hash.h>
diff --git a/fs/ecryptfs/debug.c b/fs/ecryptfs/debug.c
index 3d2bdf546ec6..d131d070826f 100644
--- a/fs/ecryptfs/debug.c
+++ b/fs/ecryptfs/debug.c
@@ -1,24 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * eCryptfs: Linux filesystem encryption layer 3 * eCryptfs: Linux filesystem encryption layer
3 * Functions only useful for debugging. 4 * Functions only useful for debugging.
4 * 5 *
5 * Copyright (C) 2006 International Business Machines Corp. 6 * Copyright (C) 2006 International Business Machines Corp.
6 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com> 7 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com>
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as
10 * published by the Free Software Foundation; either version 2 of the
11 * License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
21 * 02111-1307, USA.
22 */ 8 */
23 9
24#include "ecryptfs_kernel.h" 10#include "ecryptfs_kernel.h"
diff --git a/fs/ecryptfs/dentry.c b/fs/ecryptfs/dentry.c
index 63cd2c147221..44606f079efb 100644
--- a/fs/ecryptfs/dentry.c
+++ b/fs/ecryptfs/dentry.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * eCryptfs: Linux filesystem encryption layer 3 * eCryptfs: Linux filesystem encryption layer
3 * 4 *
@@ -5,21 +6,6 @@
5 * Copyright (C) 2001-2003 Stony Brook University 6 * Copyright (C) 2001-2003 Stony Brook University
6 * Copyright (C) 2004-2006 International Business Machines Corp. 7 * Copyright (C) 2004-2006 International Business Machines Corp.
7 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com> 8 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com>
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful, but
15 * WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
22 * 02111-1307, USA.
23 */ 9 */
24 10
25#include <linux/dcache.h> 11#include <linux/dcache.h>
diff --git a/fs/ecryptfs/ecryptfs_kernel.h b/fs/ecryptfs/ecryptfs_kernel.h
index e74cb2a0b299..1c1a56be7ea2 100644
--- a/fs/ecryptfs/ecryptfs_kernel.h
+++ b/fs/ecryptfs/ecryptfs_kernel.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/** 2/**
2 * eCryptfs: Linux filesystem encryption layer 3 * eCryptfs: Linux filesystem encryption layer
3 * Kernel declarations. 4 * Kernel declarations.
@@ -8,21 +9,6 @@
8 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com> 9 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com>
9 * Trevor S. Highland <trevor.highland@gmail.com> 10 * Trevor S. Highland <trevor.highland@gmail.com>
10 * Tyler Hicks <tyhicks@ou.edu> 11 * Tyler Hicks <tyhicks@ou.edu>
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License as
14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, write to the Free Software
24 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
25 * 02111-1307, USA.
26 */ 12 */
27 13
28#ifndef ECRYPTFS_KERNEL_H 14#ifndef ECRYPTFS_KERNEL_H
diff --git a/fs/ecryptfs/file.c b/fs/ecryptfs/file.c
index b76a9853325e..feecb57defa7 100644
--- a/fs/ecryptfs/file.c
+++ b/fs/ecryptfs/file.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * eCryptfs: Linux filesystem encryption layer 3 * eCryptfs: Linux filesystem encryption layer
3 * 4 *
@@ -6,21 +7,6 @@
6 * Copyright (C) 2004-2007 International Business Machines Corp. 7 * Copyright (C) 2004-2007 International Business Machines Corp.
7 * Author(s): Michael A. Halcrow <mhalcrow@us.ibm.com> 8 * Author(s): Michael A. Halcrow <mhalcrow@us.ibm.com>
8 * Michael C. Thompson <mcthomps@us.ibm.com> 9 * Michael C. Thompson <mcthomps@us.ibm.com>
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
23 * 02111-1307, USA.
24 */ 10 */
25 11
26#include <linux/file.h> 12#include <linux/file.h>
diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
index 5c36ceecb5c1..1e994d780f37 100644
--- a/fs/ecryptfs/inode.c
+++ b/fs/ecryptfs/inode.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * eCryptfs: Linux filesystem encryption layer 3 * eCryptfs: Linux filesystem encryption layer
3 * 4 *
@@ -6,21 +7,6 @@
6 * Copyright (C) 2004-2007 International Business Machines Corp. 7 * Copyright (C) 2004-2007 International Business Machines Corp.
7 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com> 8 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com>
8 * Michael C. Thompsion <mcthomps@us.ibm.com> 9 * Michael C. Thompsion <mcthomps@us.ibm.com>
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
23 * 02111-1307, USA.
24 */ 10 */
25 11
26#include <linux/file.h> 12#include <linux/file.h>
diff --git a/fs/ecryptfs/keystore.c b/fs/ecryptfs/keystore.c
index 90fbac5d485b..9536e592e25a 100644
--- a/fs/ecryptfs/keystore.c
+++ b/fs/ecryptfs/keystore.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * eCryptfs: Linux filesystem encryption layer 3 * eCryptfs: Linux filesystem encryption layer
3 * In-kernel key management code. Includes functions to parse and 4 * In-kernel key management code. Includes functions to parse and
@@ -8,21 +9,6 @@
8 * Author(s): Michael A. Halcrow <mhalcrow@us.ibm.com> 9 * Author(s): Michael A. Halcrow <mhalcrow@us.ibm.com>
9 * Michael C. Thompson <mcthomps@us.ibm.com> 10 * Michael C. Thompson <mcthomps@us.ibm.com>
10 * Trevor S. Highland <trevor.highland@gmail.com> 11 * Trevor S. Highland <trevor.highland@gmail.com>
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License as
14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, write to the Free Software
24 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
25 * 02111-1307, USA.
26 */ 12 */
27 13
28#include <crypto/hash.h> 14#include <crypto/hash.h>
diff --git a/fs/ecryptfs/kthread.c b/fs/ecryptfs/kthread.c
index e00d45af84ea..a7c903cb01a0 100644
--- a/fs/ecryptfs/kthread.c
+++ b/fs/ecryptfs/kthread.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * eCryptfs: Linux filesystem encryption layer 3 * eCryptfs: Linux filesystem encryption layer
3 * 4 *
4 * Copyright (C) 2008 International Business Machines Corp. 5 * Copyright (C) 2008 International Business Machines Corp.
5 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com> 6 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com>
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation; either version 2 of the
10 * License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
20 * 02111-1307, USA.
21 */ 7 */
22 8
23#include <linux/kthread.h> 9#include <linux/kthread.h>
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c
index 025d66a705db..b8a7ce379ffe 100644
--- a/fs/ecryptfs/main.c
+++ b/fs/ecryptfs/main.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * eCryptfs: Linux filesystem encryption layer 3 * eCryptfs: Linux filesystem encryption layer
3 * 4 *
@@ -7,21 +8,6 @@
7 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com> 8 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com>
8 * Michael C. Thompson <mcthomps@us.ibm.com> 9 * Michael C. Thompson <mcthomps@us.ibm.com>
9 * Tyler Hicks <tyhicks@ou.edu> 10 * Tyler Hicks <tyhicks@ou.edu>
10 *
11 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful, but
17 * WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
24 * 02111-1307, USA.
25 */ 11 */
26 12
27#include <linux/dcache.h> 13#include <linux/dcache.h>
diff --git a/fs/ecryptfs/messaging.c b/fs/ecryptfs/messaging.c
index 9fdd5bcf4564..d668e60b85b5 100644
--- a/fs/ecryptfs/messaging.c
+++ b/fs/ecryptfs/messaging.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/** 2/**
2 * eCryptfs: Linux filesystem encryption layer 3 * eCryptfs: Linux filesystem encryption layer
3 * 4 *
4 * Copyright (C) 2004-2008 International Business Machines Corp. 5 * Copyright (C) 2004-2008 International Business Machines Corp.
5 * Author(s): Michael A. Halcrow <mhalcrow@us.ibm.com> 6 * Author(s): Michael A. Halcrow <mhalcrow@us.ibm.com>
6 * Tyler Hicks <tyhicks@ou.edu> 7 * Tyler Hicks <tyhicks@ou.edu>
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License version
10 * 2 as published by the Free Software Foundation.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
20 * 02111-1307, USA.
21 */ 8 */
22#include <linux/sched.h> 9#include <linux/sched.h>
23#include <linux/slab.h> 10#include <linux/slab.h>
diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c
index 2d1158e5f950..742ece22c1d4 100644
--- a/fs/ecryptfs/miscdev.c
+++ b/fs/ecryptfs/miscdev.c
@@ -1,22 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/** 2/**
2 * eCryptfs: Linux filesystem encryption layer 3 * eCryptfs: Linux filesystem encryption layer
3 * 4 *
4 * Copyright (C) 2008 International Business Machines Corp. 5 * Copyright (C) 2008 International Business Machines Corp.
5 * Author(s): Michael A. Halcrow <mhalcrow@us.ibm.com> 6 * Author(s): Michael A. Halcrow <mhalcrow@us.ibm.com>
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License version
9 * 2 as published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19 * 02111-1307, USA.
20 */ 7 */
21 8
22#include <linux/fs.h> 9#include <linux/fs.h>
diff --git a/fs/ecryptfs/mmap.c b/fs/ecryptfs/mmap.c
index cdf358b209d9..cffa0c1ec829 100644
--- a/fs/ecryptfs/mmap.c
+++ b/fs/ecryptfs/mmap.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * eCryptfs: Linux filesystem encryption layer 3 * eCryptfs: Linux filesystem encryption layer
3 * This is where eCryptfs coordinates the symmetric encryption and 4 * This is where eCryptfs coordinates the symmetric encryption and
@@ -8,21 +9,6 @@
8 * Copyright (C) 2001-2003 Stony Brook University 9 * Copyright (C) 2001-2003 Stony Brook University
9 * Copyright (C) 2004-2007 International Business Machines Corp. 10 * Copyright (C) 2004-2007 International Business Machines Corp.
10 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com> 11 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com>
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License as
14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, write to the Free Software
24 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
25 * 02111-1307, USA.
26 */ 12 */
27 13
28#include <linux/pagemap.h> 14#include <linux/pagemap.h>
diff --git a/fs/ecryptfs/read_write.c b/fs/ecryptfs/read_write.c
index c596e7c03424..0438997ac9d8 100644
--- a/fs/ecryptfs/read_write.c
+++ b/fs/ecryptfs/read_write.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * eCryptfs: Linux filesystem encryption layer 3 * eCryptfs: Linux filesystem encryption layer
3 * 4 *
4 * Copyright (C) 2007 International Business Machines Corp. 5 * Copyright (C) 2007 International Business Machines Corp.
5 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com> 6 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com>
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation; either version 2 of the
10 * License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
20 * 02111-1307, USA.
21 */ 7 */
22 8
23#include <linux/fs.h> 9#include <linux/fs.h>
diff --git a/fs/ecryptfs/super.c b/fs/ecryptfs/super.c
index c3e511f2b6c0..6b1853f1c06a 100644
--- a/fs/ecryptfs/super.c
+++ b/fs/ecryptfs/super.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * eCryptfs: Linux filesystem encryption layer 3 * eCryptfs: Linux filesystem encryption layer
3 * 4 *
@@ -6,21 +7,6 @@
6 * Copyright (C) 2004-2006 International Business Machines Corp. 7 * Copyright (C) 2004-2006 International Business Machines Corp.
7 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com> 8 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com>
8 * Michael C. Thompson <mcthomps@us.ibm.com> 9 * Michael C. Thompson <mcthomps@us.ibm.com>
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
23 * 02111-1307, USA.
24 */ 10 */
25 11
26#include <linux/fs.h> 12#include <linux/fs.h>
diff --git a/fs/efivarfs/Kconfig b/fs/efivarfs/Kconfig
index c2499ef174a2..edec8a19c894 100644
--- a/fs/efivarfs/Kconfig
+++ b/fs/efivarfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config EFIVAR_FS 2config EFIVAR_FS
2 tristate "EFI Variable filesystem" 3 tristate "EFI Variable filesystem"
3 depends on EFI 4 depends on EFI
diff --git a/fs/efivarfs/Makefile b/fs/efivarfs/Makefile
index 955d478177d5..0b1c5e63eb71 100644
--- a/fs/efivarfs/Makefile
+++ b/fs/efivarfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the efivarfs filesystem 3# Makefile for the efivarfs filesystem
3# 4#
diff --git a/fs/efivarfs/file.c b/fs/efivarfs/file.c
index 8e568428c88b..ee3bc0c96b9d 100644
--- a/fs/efivarfs/file.c
+++ b/fs/efivarfs/file.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) 2012 Red Hat, Inc. 3 * Copyright (C) 2012 Red Hat, Inc.
3 * Copyright (C) 2012 Jeremy Kerr <jeremy.kerr@canonical.com> 4 * Copyright (C) 2012 Jeremy Kerr <jeremy.kerr@canonical.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */ 5 */
9 6
10#include <linux/efi.h> 7#include <linux/efi.h>
diff --git a/fs/efivarfs/inode.c b/fs/efivarfs/inode.c
index 8c6ab6c95727..96c0c86f3fff 100644
--- a/fs/efivarfs/inode.c
+++ b/fs/efivarfs/inode.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) 2012 Red Hat, Inc. 3 * Copyright (C) 2012 Red Hat, Inc.
3 * Copyright (C) 2012 Jeremy Kerr <jeremy.kerr@canonical.com> 4 * Copyright (C) 2012 Jeremy Kerr <jeremy.kerr@canonical.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */ 5 */
9 6
10#include <linux/efi.h> 7#include <linux/efi.h>
diff --git a/fs/efivarfs/internal.h b/fs/efivarfs/internal.h
index b4505188e799..30ae44cb7453 100644
--- a/fs/efivarfs/internal.h
+++ b/fs/efivarfs/internal.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) 2012 Red Hat, Inc. 3 * Copyright (C) 2012 Red Hat, Inc.
3 * Copyright (C) 2012 Jeremy Kerr <jeremy.kerr@canonical.com> 4 * Copyright (C) 2012 Jeremy Kerr <jeremy.kerr@canonical.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */ 5 */
9#ifndef EFIVAR_FS_INTERNAL_H 6#ifndef EFIVAR_FS_INTERNAL_H
10#define EFIVAR_FS_INTERNAL_H 7#define EFIVAR_FS_INTERNAL_H
diff --git a/fs/efivarfs/super.c b/fs/efivarfs/super.c
index 5b68e4294faa..5bc3c4a4c563 100644
--- a/fs/efivarfs/super.c
+++ b/fs/efivarfs/super.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) 2012 Red Hat, Inc. 3 * Copyright (C) 2012 Red Hat, Inc.
3 * Copyright (C) 2012 Jeremy Kerr <jeremy.kerr@canonical.com> 4 * Copyright (C) 2012 Jeremy Kerr <jeremy.kerr@canonical.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */ 5 */
9 6
10#include <linux/ctype.h> 7#include <linux/ctype.h>
diff --git a/fs/efs/Kconfig b/fs/efs/Kconfig
index d020e3c30fea..2df1bac8b375 100644
--- a/fs/efs/Kconfig
+++ b/fs/efs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config EFS_FS 2config EFS_FS
2 tristate "EFS file system support (read only)" 3 tristate "EFS file system support (read only)"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/efs/Makefile b/fs/efs/Makefile
index 963543d46f0d..85e5b88f9471 100644
--- a/fs/efs/Makefile
+++ b/fs/efs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the linux efs-filesystem routines. 3# Makefile for the linux efs-filesystem routines.
3# 4#
diff --git a/fs/efs/inode.c b/fs/efs/inode.c
index cdf0872382af..89e73a6f0d36 100644
--- a/fs/efs/inode.c
+++ b/fs/efs/inode.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * inode.c 3 * inode.c
3 * 4 *
diff --git a/fs/eventfd.c b/fs/eventfd.c
index 93b1fa7bb298..8aa0ea8c55e8 100644
--- a/fs/eventfd.c
+++ b/fs/eventfd.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/eventfd.c 3 * fs/eventfd.c
3 * 4 *
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index 4a0e98d87fcc..4c74c768ae43 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -1,14 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * fs/eventpoll.c (Efficient event retrieval implementation) 3 * fs/eventpoll.c (Efficient event retrieval implementation)
3 * Copyright (C) 2001,...,2009 Davide Libenzi 4 * Copyright (C) 2001,...,2009 Davide Libenzi
4 * 5 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * Davide Libenzi <davidel@xmailserver.org> 6 * Davide Libenzi <davidel@xmailserver.org>
11 *
12 */ 7 */
13 8
14#include <linux/init.h> 9#include <linux/init.h>
@@ -2330,7 +2325,7 @@ SYSCALL_DEFINE6(epoll_pwait, int, epfd, struct epoll_event __user *, events,
2330 2325
2331 error = do_epoll_wait(epfd, events, maxevents, timeout); 2326 error = do_epoll_wait(epfd, events, maxevents, timeout);
2332 2327
2333 restore_user_sigmask(sigmask, &sigsaved); 2328 restore_user_sigmask(sigmask, &sigsaved, error == -EINTR);
2334 2329
2335 return error; 2330 return error;
2336} 2331}
@@ -2355,7 +2350,7 @@ COMPAT_SYSCALL_DEFINE6(epoll_pwait, int, epfd,
2355 2350
2356 err = do_epoll_wait(epfd, events, maxevents, timeout); 2351 err = do_epoll_wait(epfd, events, maxevents, timeout);
2357 2352
2358 restore_user_sigmask(sigmask, &sigsaved); 2353 restore_user_sigmask(sigmask, &sigsaved, err == -EINTR);
2359 2354
2360 return err; 2355 return err;
2361} 2356}
diff --git a/fs/exec.c b/fs/exec.c
index d88584ebf07f..89a500bb897a 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/exec.c 3 * linux/fs/exec.c
3 * 4 *
diff --git a/fs/exportfs/Makefile b/fs/exportfs/Makefile
index d7c5d4ddb34b..a04a8af83efd 100644
--- a/fs/exportfs/Makefile
+++ b/fs/exportfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the filesystem export support routines. 3# Makefile for the filesystem export support routines.
3 4
diff --git a/fs/exportfs/expfs.c b/fs/exportfs/expfs.c
index c69927bed4ef..f0e549783caf 100644
--- a/fs/exportfs/expfs.c
+++ b/fs/exportfs/expfs.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Neil Brown 2002 3 * Copyright (C) Neil Brown 2002
3 * Copyright (C) Christoph Hellwig 2007 4 * Copyright (C) Christoph Hellwig 2007
diff --git a/fs/ext2/Kconfig b/fs/ext2/Kconfig
index 894e4c53d1d2..54eec9185627 100644
--- a/fs/ext2/Kconfig
+++ b/fs/ext2/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config EXT2_FS 2config EXT2_FS
2 tristate "Second extended fs support" 3 tristate "Second extended fs support"
3 help 4 help
diff --git a/fs/ext2/super.c b/fs/ext2/super.c
index 3988633789cb..1d7ab73b1014 100644
--- a/fs/ext2/super.c
+++ b/fs/ext2/super.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/ext2/super.c 3 * linux/fs/ext2/super.c
3 * 4 *
diff --git a/fs/ext4/Kconfig b/fs/ext4/Kconfig
index 06f77ca7f36e..cbb5ca830e57 100644
--- a/fs/ext4/Kconfig
+++ b/fs/ext4/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# Ext3 configs are here for backward compatibility with old configs which may 2# Ext3 configs are here for backward compatibility with old configs which may
2# have EXT3_FS set but not EXT4_FS set and thus would result in non-bootable 3# have EXT3_FS set but not EXT4_FS set and thus would result in non-bootable
3# kernels after the removal of ext3 driver. 4# kernels after the removal of ext3 driver.
diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c
index 884a6e776809..c7843b149a1e 100644
--- a/fs/ext4/dir.c
+++ b/fs/ext4/dir.c
@@ -671,7 +671,7 @@ static int ext4_d_compare(const struct dentry *dentry, unsigned int len,
671 if (!IS_CASEFOLDED(dentry->d_parent->d_inode)) { 671 if (!IS_CASEFOLDED(dentry->d_parent->d_inode)) {
672 if (len != name->len) 672 if (len != name->len)
673 return -1; 673 return -1;
674 return !memcmp(str, name, len); 674 return memcmp(str, name->name, len);
675 } 675 }
676 676
677 return ext4_ci_compare(dentry->d_parent->d_inode, name, &qstr); 677 return ext4_ci_compare(dentry->d_parent->d_inode, name, &qstr);
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index f2c62e2a0c98..d40ed940001e 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -518,10 +518,14 @@ __read_extent_tree_block(const char *function, unsigned int line,
518 } 518 }
519 if (buffer_verified(bh) && !(flags & EXT4_EX_FORCE_CACHE)) 519 if (buffer_verified(bh) && !(flags & EXT4_EX_FORCE_CACHE))
520 return bh; 520 return bh;
521 err = __ext4_ext_check(function, line, inode, 521 if (!ext4_has_feature_journal(inode->i_sb) ||
522 ext_block_hdr(bh), depth, pblk); 522 (inode->i_ino !=
523 if (err) 523 le32_to_cpu(EXT4_SB(inode->i_sb)->s_es->s_journal_inum))) {
524 goto errout; 524 err = __ext4_ext_check(function, line, inode,
525 ext_block_hdr(bh), depth, pblk);
526 if (err)
527 goto errout;
528 }
525 set_buffer_verified(bh); 529 set_buffer_verified(bh);
526 /* 530 /*
527 * If this is a leaf block, cache all of its entries 531 * If this is a leaf block, cache all of its entries
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 82298c63ea6d..c7f77c643008 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -5625,25 +5625,22 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr)
5625 up_write(&EXT4_I(inode)->i_data_sem); 5625 up_write(&EXT4_I(inode)->i_data_sem);
5626 ext4_journal_stop(handle); 5626 ext4_journal_stop(handle);
5627 if (error) { 5627 if (error) {
5628 if (orphan) 5628 if (orphan && inode->i_nlink)
5629 ext4_orphan_del(NULL, inode); 5629 ext4_orphan_del(NULL, inode);
5630 goto err_out; 5630 goto err_out;
5631 } 5631 }
5632 } 5632 }
5633 if (!shrink) 5633 if (!shrink) {
5634 pagecache_isize_extended(inode, oldsize, inode->i_size); 5634 pagecache_isize_extended(inode, oldsize, inode->i_size);
5635 5635 } else {
5636 /* 5636 /*
5637 * Blocks are going to be removed from the inode. Wait 5637 * Blocks are going to be removed from the inode. Wait
5638 * for dio in flight. Temporarily disable 5638 * for dio in flight.
5639 * dioread_nolock to prevent livelock. 5639 */
5640 */ 5640 inode_dio_wait(inode);
5641 if (orphan) {
5642 if (!ext4_should_journal_data(inode)) {
5643 inode_dio_wait(inode);
5644 } else
5645 ext4_wait_for_tail_page_commit(inode);
5646 } 5641 }
5642 if (orphan && ext4_should_journal_data(inode))
5643 ext4_wait_for_tail_page_commit(inode);
5647 down_write(&EXT4_I(inode)->i_mmap_sem); 5644 down_write(&EXT4_I(inode)->i_mmap_sem);
5648 5645
5649 rc = ext4_break_layouts(inode); 5646 rc = ext4_break_layouts(inode);
diff --git a/fs/f2fs/Kconfig b/fs/f2fs/Kconfig
index e57cc754d543..110a38ca5d53 100644
--- a/fs/f2fs/Kconfig
+++ b/fs/f2fs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config F2FS_FS 2config F2FS_FS
2 tristate "F2FS filesystem support" 3 tristate "F2FS filesystem support"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/fat/Kconfig b/fs/fat/Kconfig
index 3ff1772f612e..718163d0c621 100644
--- a/fs/fat/Kconfig
+++ b/fs/fat/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config FAT_FS 2config FAT_FS
2 tristate 3 tristate
3 select NLS 4 select NLS
diff --git a/fs/fat/dir.c b/fs/fat/dir.c
index 9d01db37183f..1bda2ab6745b 100644
--- a/fs/fat/dir.c
+++ b/fs/fat/dir.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/fat/dir.c 3 * linux/fs/fat/dir.c
3 * 4 *
diff --git a/fs/fat/fatent.c b/fs/fat/fatent.c
index 495edeafd60a..265983635f2b 100644
--- a/fs/fat/fatent.c
+++ b/fs/fat/fatent.c
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) 2004, OGAWA Hirofumi 3 * Copyright (C) 2004, OGAWA Hirofumi
3 * Released under GPL v2.
4 */ 4 */
5 5
6#include <linux/blkdev.h> 6#include <linux/blkdev.h>
diff --git a/fs/fat/file.c b/fs/fat/file.c
index 0e3ed79fcc3f..4614c0ba5f1c 100644
--- a/fs/fat/file.c
+++ b/fs/fat/file.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/fat/file.c 3 * linux/fs/fat/file.c
3 * 4 *
diff --git a/fs/fat/inode.c b/fs/fat/inode.c
index ba93d1373306..05689198f5af 100644
--- a/fs/fat/inode.c
+++ b/fs/fat/inode.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/fat/inode.c 3 * linux/fs/fat/inode.c
3 * 4 *
diff --git a/fs/fat/misc.c b/fs/fat/misc.c
index 4fc950bb6433..1e08bd54c5fb 100644
--- a/fs/fat/misc.c
+++ b/fs/fat/misc.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/fat/misc.c 3 * linux/fs/fat/misc.c
3 * 4 *
diff --git a/fs/fat/namei_msdos.c b/fs/fat/namei_msdos.c
index f2cd365a4e86..9d062886fbc1 100644
--- a/fs/fat/namei_msdos.c
+++ b/fs/fat/namei_msdos.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/msdos/namei.c 3 * linux/fs/msdos/namei.c
3 * 4 *
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c
index 996c8c25e9c6..0cdd0fb9f742 100644
--- a/fs/fat/namei_vfat.c
+++ b/fs/fat/namei_vfat.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/vfat/namei.c 3 * linux/fs/vfat/namei.c
3 * 4 *
diff --git a/fs/fat/nfs.c b/fs/fat/nfs.c
index eb192656fba2..af191371c352 100644
--- a/fs/fat/nfs.c
+++ b/fs/fat/nfs.c
@@ -1,14 +1,5 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* fs/fat/nfs.c 2/* fs/fat/nfs.c
2 *
3 * This software is licensed under the terms of the GNU General Public
4 * License version 2, as published by the Free Software Foundation, and
5 * may be copied, distributed, and modified under those terms.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 *
12 */ 3 */
13 4
14#include <linux/exportfs.h> 5#include <linux/exportfs.h>
diff --git a/fs/file_table.c b/fs/file_table.c
index 3f9c1b452c1d..b07b53f24ff5 100644
--- a/fs/file_table.c
+++ b/fs/file_table.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/file_table.c 3 * linux/fs/file_table.c
3 * 4 *
diff --git a/fs/freevxfs/Kconfig b/fs/freevxfs/Kconfig
index ce49df1020dd..c05c71d57291 100644
--- a/fs/freevxfs/Kconfig
+++ b/fs/freevxfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config VXFS_FS 2config VXFS_FS
2 tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)" 3 tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/freevxfs/Makefile b/fs/freevxfs/Makefile
index 87ad097440d6..e6ee59291521 100644
--- a/fs/freevxfs/Makefile
+++ b/fs/freevxfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# VxFS Makefile 3# VxFS Makefile
3# 4#
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index b16645b417d9..e41cbe8e81b9 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/fs-writeback.c 3 * fs/fs-writeback.c
3 * 4 *
diff --git a/fs/fs_context.c b/fs/fs_context.c
index a47ccd5a4a78..103643c68e3f 100644
--- a/fs/fs_context.c
+++ b/fs/fs_context.c
@@ -1,13 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Provide a way to create a superblock configuration context within the kernel 2/* Provide a way to create a superblock configuration context within the kernel
2 * that allows a superblock to be set up prior to mounting. 3 * that allows a superblock to be set up prior to mounting.
3 * 4 *
4 * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved. 5 * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved.
5 * Written by David Howells (dhowells@redhat.com) 6 * Written by David Howells (dhowells@redhat.com)
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public Licence
9 * as published by the Free Software Foundation; either version
10 * 2 of the Licence, or (at your option) any later version.
11 */ 7 */
12 8
13#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 9#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/fs/fs_parser.c b/fs/fs_parser.c
index 570d71043acf..0d388faa25d1 100644
--- a/fs/fs_parser.c
+++ b/fs/fs_parser.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Filesystem parameter parser. 2/* Filesystem parameter parser.
2 * 3 *
3 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/export.h> 8#include <linux/export.h>
diff --git a/fs/fs_struct.c b/fs/fs_struct.c
index be0250788b73..ca639ed967b7 100644
--- a/fs/fs_struct.c
+++ b/fs/fs_struct.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1#include <linux/export.h> 2#include <linux/export.h>
2#include <linux/sched/signal.h> 3#include <linux/sched/signal.h>
3#include <linux/sched/task.h> 4#include <linux/sched/task.h>
diff --git a/fs/fscache/Kconfig b/fs/fscache/Kconfig
index 3f6dfa989881..506c5e643f0d 100644
--- a/fs/fscache/Kconfig
+++ b/fs/fscache/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1 2
2config FSCACHE 3config FSCACHE
3 tristate "General filesystem local caching manager" 4 tristate "General filesystem local caching manager"
diff --git a/fs/fscache/cache.c b/fs/fscache/cache.c
index cdcb376ef8df..f78793f3d21e 100644
--- a/fs/fscache/cache.c
+++ b/fs/fscache/cache.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* FS-Cache cache handling 2/* FS-Cache cache handling
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#define FSCACHE_DEBUG_LEVEL CACHE 8#define FSCACHE_DEBUG_LEVEL CACHE
diff --git a/fs/fscache/cookie.c b/fs/fscache/cookie.c
index c550512ce335..0ce39658a620 100644
--- a/fs/fscache/cookie.c
+++ b/fs/fscache/cookie.c
@@ -1,13 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* netfs cookie management 2/* netfs cookie management
2 * 3 *
3 * Copyright (C) 2004-2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2004-2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 * 6 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 *
11 * See Documentation/filesystems/caching/netfs-api.txt for more information on 7 * See Documentation/filesystems/caching/netfs-api.txt for more information on
12 * the netfs API. 8 * the netfs API.
13 */ 9 */
diff --git a/fs/fscache/fsdef.c b/fs/fscache/fsdef.c
index aa46e48d8c75..09ed8795ad86 100644
--- a/fs/fscache/fsdef.c
+++ b/fs/fscache/fsdef.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Filesystem index definition 2/* Filesystem index definition
2 * 3 *
3 * Copyright (C) 2004-2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2004-2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#define FSCACHE_DEBUG_LEVEL CACHE 8#define FSCACHE_DEBUG_LEVEL CACHE
diff --git a/fs/fscache/histogram.c b/fs/fscache/histogram.c
index 9a13e9e15b69..4e5beeaaf454 100644
--- a/fs/fscache/histogram.c
+++ b/fs/fscache/histogram.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* FS-Cache latency histogram 2/* FS-Cache latency histogram
2 * 3 *
3 * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#define FSCACHE_DEBUG_LEVEL THREAD 8#define FSCACHE_DEBUG_LEVEL THREAD
diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h
index d6209022e965..9616af3768e1 100644
--- a/fs/fscache/internal.h
+++ b/fs/fscache/internal.h
@@ -1,12 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* Internal definitions for FS-Cache 2/* Internal definitions for FS-Cache
2 * 3 *
3 * Copyright (C) 2004-2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2004-2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12/* 8/*
diff --git a/fs/fscache/main.c b/fs/fscache/main.c
index 30ad89db1efc..59c2494efda3 100644
--- a/fs/fscache/main.c
+++ b/fs/fscache/main.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* General filesystem local caching manager 2/* General filesystem local caching manager
2 * 3 *
3 * Copyright (C) 2004-2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2004-2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#define FSCACHE_DEBUG_LEVEL CACHE 8#define FSCACHE_DEBUG_LEVEL CACHE
diff --git a/fs/fscache/netfs.c b/fs/fscache/netfs.c
index c2f605483cc5..cce92216fa28 100644
--- a/fs/fscache/netfs.c
+++ b/fs/fscache/netfs.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* FS-Cache netfs (client) registration 2/* FS-Cache netfs (client) registration
2 * 3 *
3 * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#define FSCACHE_DEBUG_LEVEL COOKIE 8#define FSCACHE_DEBUG_LEVEL COOKIE
diff --git a/fs/fscache/object-list.c b/fs/fscache/object-list.c
index 43e6e28c164f..72ebfe578f40 100644
--- a/fs/fscache/object-list.c
+++ b/fs/fscache/object-list.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Global fscache object list maintainer and viewer 2/* Global fscache object list maintainer and viewer
2 * 3 *
3 * Copyright (C) 2009 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2009 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#define FSCACHE_DEBUG_LEVEL COOKIE 8#define FSCACHE_DEBUG_LEVEL COOKIE
diff --git a/fs/fscache/object.c b/fs/fscache/object.c
index 6d9cb1719de5..cfeba839a0f2 100644
--- a/fs/fscache/object.c
+++ b/fs/fscache/object.c
@@ -1,13 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* FS-Cache object state machine handler 2/* FS-Cache object state machine handler
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 * 6 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 *
11 * See Documentation/filesystems/caching/object.txt for a description of the 7 * See Documentation/filesystems/caching/object.txt for a description of the
12 * object state machine and the in-kernel representations. 8 * object state machine and the in-kernel representations.
13 */ 9 */
diff --git a/fs/fscache/operation.c b/fs/fscache/operation.c
index 8d265790374c..1a22a55f75a0 100644
--- a/fs/fscache/operation.c
+++ b/fs/fscache/operation.c
@@ -1,13 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* FS-Cache worker operation management routines 2/* FS-Cache worker operation management routines
2 * 3 *
3 * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 * 6 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 *
11 * See Documentation/filesystems/caching/operations.txt 7 * See Documentation/filesystems/caching/operations.txt
12 */ 8 */
13 9
diff --git a/fs/fscache/page.c b/fs/fscache/page.c
index 111349f67d98..26af6fdf1538 100644
--- a/fs/fscache/page.c
+++ b/fs/fscache/page.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Cache page management and data I/O routines 2/* Cache page management and data I/O routines
2 * 3 *
3 * Copyright (C) 2004-2008 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2004-2008 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#define FSCACHE_DEBUG_LEVEL PAGE 8#define FSCACHE_DEBUG_LEVEL PAGE
diff --git a/fs/fscache/proc.c b/fs/fscache/proc.c
index 49a8c90414bc..5523446e2952 100644
--- a/fs/fscache/proc.c
+++ b/fs/fscache/proc.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* FS-Cache statistics viewing interface 2/* FS-Cache statistics viewing interface
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#define FSCACHE_DEBUG_LEVEL OPERATION 8#define FSCACHE_DEBUG_LEVEL OPERATION
diff --git a/fs/fscache/stats.c b/fs/fscache/stats.c
index 00564a1dfd76..a5aa93ece8c5 100644
--- a/fs/fscache/stats.c
+++ b/fs/fscache/stats.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* FS-Cache statistics 2/* FS-Cache statistics
2 * 3 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#define FSCACHE_DEBUG_LEVEL THREAD 8#define FSCACHE_DEBUG_LEVEL THREAD
diff --git a/fs/fsopen.c b/fs/fsopen.c
index c2891e933ef1..a8bf83ce8d4e 100644
--- a/fs/fsopen.c
+++ b/fs/fsopen.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* Filesystem access-by-fd. 2/* Filesystem access-by-fd.
2 * 3 *
3 * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/fs_context.h> 8#include <linux/fs_context.h>
diff --git a/fs/fuse/Kconfig b/fs/fuse/Kconfig
index 76f09ce7e5b2..24fc5a5c1b97 100644
--- a/fs/fuse/Kconfig
+++ b/fs/fuse/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config FUSE_FS 2config FUSE_FS
2 tristate "FUSE (Filesystem in Userspace) support" 3 tristate "FUSE (Filesystem in Userspace) support"
3 select FS_POSIX_ACL 4 select FS_POSIX_ACL
diff --git a/fs/fuse/Makefile b/fs/fuse/Makefile
index f7b807bc1027..9485019c2a14 100644
--- a/fs/fuse/Makefile
+++ b/fs/fuse/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the FUSE filesystem. 3# Makefile for the FUSE filesystem.
3# 4#
diff --git a/fs/fuse/cuse.c b/fs/fuse/cuse.c
index 4b41df1d4642..bab7a0db81dd 100644
--- a/fs/fuse/cuse.c
+++ b/fs/fuse/cuse.c
@@ -1,11 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * CUSE: Character device in Userspace 3 * CUSE: Character device in Userspace
3 * 4 *
4 * Copyright (C) 2008-2009 SUSE Linux Products GmbH 5 * Copyright (C) 2008-2009 SUSE Linux Products GmbH
5 * Copyright (C) 2008-2009 Tejun Heo <tj@kernel.org> 6 * Copyright (C) 2008-2009 Tejun Heo <tj@kernel.org>
6 * 7 *
7 * This file is released under the GPLv2.
8 *
9 * CUSE enables character devices to be implemented from userland much 8 * CUSE enables character devices to be implemented from userland much
10 * like FUSE allows filesystems. On initialization /dev/cuse is 9 * like FUSE allows filesystems. On initialization /dev/cuse is
11 * created. By opening the file and replying to the CUSE_INIT request 10 * created. By opening the file and replying to the CUSE_INIT request
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index 24ea19cfe07e..ea8237513dfa 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -1317,16 +1317,6 @@ static ssize_t fuse_dev_do_read(struct fuse_dev *fud, struct file *file,
1317 unsigned reqsize; 1317 unsigned reqsize;
1318 unsigned int hash; 1318 unsigned int hash;
1319 1319
1320 /*
1321 * Require sane minimum read buffer - that has capacity for fixed part
1322 * of any request header + negotated max_write room for data. If the
1323 * requirement is not satisfied return EINVAL to the filesystem server
1324 * to indicate that it is not following FUSE server/client contract.
1325 * Don't dequeue / abort any request.
1326 */
1327 if (nbytes < max_t(size_t, FUSE_MIN_READ_BUFFER, 4096 + fc->max_write))
1328 return -EINVAL;
1329
1330 restart: 1320 restart:
1331 spin_lock(&fiq->waitq.lock); 1321 spin_lock(&fiq->waitq.lock);
1332 err = -EAGAIN; 1322 err = -EAGAIN;
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 3959f08279e6..b8f9c83835d5 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -1377,10 +1377,17 @@ ssize_t fuse_direct_io(struct fuse_io_priv *io, struct iov_iter *iter,
1377 if (err && !nbytes) 1377 if (err && !nbytes)
1378 break; 1378 break;
1379 1379
1380 if (write) 1380 if (write) {
1381 if (!capable(CAP_FSETID)) {
1382 struct fuse_write_in *inarg;
1383
1384 inarg = &req->misc.write.in;
1385 inarg->write_flags |= FUSE_WRITE_KILL_PRIV;
1386 }
1381 nres = fuse_send_write(req, io, pos, nbytes, owner); 1387 nres = fuse_send_write(req, io, pos, nbytes, owner);
1382 else 1388 } else {
1383 nres = fuse_send_read(req, io, pos, nbytes, owner); 1389 nres = fuse_send_read(req, io, pos, nbytes, owner);
1390 }
1384 1391
1385 if (!io->async) 1392 if (!io->async)
1386 fuse_release_user_pages(req, io->should_dirty); 1393 fuse_release_user_pages(req, io->should_dirty);
@@ -3014,6 +3021,16 @@ fuse_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
3014 return ret; 3021 return ret;
3015} 3022}
3016 3023
3024static int fuse_writeback_range(struct inode *inode, loff_t start, loff_t end)
3025{
3026 int err = filemap_write_and_wait_range(inode->i_mapping, start, end);
3027
3028 if (!err)
3029 fuse_sync_writes(inode);
3030
3031 return err;
3032}
3033
3017static long fuse_file_fallocate(struct file *file, int mode, loff_t offset, 3034static long fuse_file_fallocate(struct file *file, int mode, loff_t offset,
3018 loff_t length) 3035 loff_t length)
3019{ 3036{
@@ -3042,12 +3059,10 @@ static long fuse_file_fallocate(struct file *file, int mode, loff_t offset,
3042 inode_lock(inode); 3059 inode_lock(inode);
3043 if (mode & FALLOC_FL_PUNCH_HOLE) { 3060 if (mode & FALLOC_FL_PUNCH_HOLE) {
3044 loff_t endbyte = offset + length - 1; 3061 loff_t endbyte = offset + length - 1;
3045 err = filemap_write_and_wait_range(inode->i_mapping, 3062
3046 offset, endbyte); 3063 err = fuse_writeback_range(inode, offset, endbyte);
3047 if (err) 3064 if (err)
3048 goto out; 3065 goto out;
3049
3050 fuse_sync_writes(inode);
3051 } 3066 }
3052 } 3067 }
3053 3068
@@ -3055,7 +3070,7 @@ static long fuse_file_fallocate(struct file *file, int mode, loff_t offset,
3055 offset + length > i_size_read(inode)) { 3070 offset + length > i_size_read(inode)) {
3056 err = inode_newsize_ok(inode, offset + length); 3071 err = inode_newsize_ok(inode, offset + length);
3057 if (err) 3072 if (err)
3058 return err; 3073 goto out;
3059 } 3074 }
3060 3075
3061 if (!(mode & FALLOC_FL_KEEP_SIZE)) 3076 if (!(mode & FALLOC_FL_KEEP_SIZE))
@@ -3103,6 +3118,7 @@ static ssize_t fuse_copy_file_range(struct file *file_in, loff_t pos_in,
3103{ 3118{
3104 struct fuse_file *ff_in = file_in->private_data; 3119 struct fuse_file *ff_in = file_in->private_data;
3105 struct fuse_file *ff_out = file_out->private_data; 3120 struct fuse_file *ff_out = file_out->private_data;
3121 struct inode *inode_in = file_inode(file_in);
3106 struct inode *inode_out = file_inode(file_out); 3122 struct inode *inode_out = file_inode(file_out);
3107 struct fuse_inode *fi_out = get_fuse_inode(inode_out); 3123 struct fuse_inode *fi_out = get_fuse_inode(inode_out);
3108 struct fuse_conn *fc = ff_in->fc; 3124 struct fuse_conn *fc = ff_in->fc;
@@ -3126,15 +3142,20 @@ static ssize_t fuse_copy_file_range(struct file *file_in, loff_t pos_in,
3126 if (fc->no_copy_file_range) 3142 if (fc->no_copy_file_range)
3127 return -EOPNOTSUPP; 3143 return -EOPNOTSUPP;
3128 3144
3145 if (fc->writeback_cache) {
3146 inode_lock(inode_in);
3147 err = fuse_writeback_range(inode_in, pos_in, pos_in + len);
3148 inode_unlock(inode_in);
3149 if (err)
3150 return err;
3151 }
3152
3129 inode_lock(inode_out); 3153 inode_lock(inode_out);
3130 3154
3131 if (fc->writeback_cache) { 3155 if (fc->writeback_cache) {
3132 err = filemap_write_and_wait_range(inode_out->i_mapping, 3156 err = fuse_writeback_range(inode_out, pos_out, pos_out + len);
3133 pos_out, pos_out + len);
3134 if (err) 3157 if (err)
3135 goto out; 3158 goto out;
3136
3137 fuse_sync_writes(inode_out);
3138 } 3159 }
3139 3160
3140 if (is_unstable) 3161 if (is_unstable)
diff --git a/fs/gfs2/Kconfig b/fs/gfs2/Kconfig
index 6a1e499543f5..03c966840422 100644
--- a/fs/gfs2/Kconfig
+++ b/fs/gfs2/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config GFS2_FS 2config GFS2_FS
2 tristate "GFS2 file system support" 3 tristate "GFS2 file system support"
3 select FS_POSIX_ACL 4 select FS_POSIX_ACL
diff --git a/fs/gfs2/acl.c b/fs/gfs2/acl.c
index af5f87a493d9..09e6be8aa036 100644
--- a/fs/gfs2/acl.c
+++ b/fs/gfs2/acl.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#include <linux/sched.h> 7#include <linux/sched.h>
diff --git a/fs/gfs2/acl.h b/fs/gfs2/acl.h
index f674fdd22337..61353a1501c5 100644
--- a/fs/gfs2/acl.h
+++ b/fs/gfs2/acl.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __ACL_DOT_H__ 7#ifndef __ACL_DOT_H__
diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c
index 6210d4429d84..abeac61cfed3 100644
--- a/fs/gfs2/aops.c
+++ b/fs/gfs2/aops.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#include <linux/sched.h> 7#include <linux/sched.h>
diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
index f42718dd292f..93ea1d529aa3 100644
--- a/fs/gfs2/bmap.c
+++ b/fs/gfs2/bmap.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#include <linux/spinlock.h> 7#include <linux/spinlock.h>
@@ -994,9 +991,12 @@ static void gfs2_write_unlock(struct inode *inode)
994static int gfs2_iomap_page_prepare(struct inode *inode, loff_t pos, 991static int gfs2_iomap_page_prepare(struct inode *inode, loff_t pos,
995 unsigned len, struct iomap *iomap) 992 unsigned len, struct iomap *iomap)
996{ 993{
994 unsigned int blockmask = i_blocksize(inode) - 1;
997 struct gfs2_sbd *sdp = GFS2_SB(inode); 995 struct gfs2_sbd *sdp = GFS2_SB(inode);
996 unsigned int blocks;
998 997
999 return gfs2_trans_begin(sdp, RES_DINODE + (len >> inode->i_blkbits), 0); 998 blocks = ((pos & blockmask) + len + blockmask) >> inode->i_blkbits;
999 return gfs2_trans_begin(sdp, RES_DINODE + blocks, 0);
1000} 1000}
1001 1001
1002static void gfs2_iomap_page_done(struct inode *inode, loff_t pos, 1002static void gfs2_iomap_page_done(struct inode *inode, loff_t pos,
diff --git a/fs/gfs2/bmap.h b/fs/gfs2/bmap.h
index 19a1fd772c61..b88fd45ab79f 100644
--- a/fs/gfs2/bmap.h
+++ b/fs/gfs2/bmap.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __BMAP_DOT_H__ 7#ifndef __BMAP_DOT_H__
diff --git a/fs/gfs2/dentry.c b/fs/gfs2/dentry.c
index 5173b98ca036..a7bb76e9a82b 100644
--- a/fs/gfs2/dentry.c
+++ b/fs/gfs2/dentry.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#include <linux/spinlock.h> 7#include <linux/spinlock.h>
diff --git a/fs/gfs2/dir.c b/fs/gfs2/dir.c
index db9a05244a35..88e4f955c518 100644
--- a/fs/gfs2/dir.c
+++ b/fs/gfs2/dir.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10/* 7/*
diff --git a/fs/gfs2/dir.h b/fs/gfs2/dir.h
index e1b309c24dab..0ac2dc8564df 100644
--- a/fs/gfs2/dir.h
+++ b/fs/gfs2/dir.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __DIR_DOT_H__ 7#ifndef __DIR_DOT_H__
diff --git a/fs/gfs2/export.c b/fs/gfs2/export.c
index a332f3cd925e..3f717285ee48 100644
--- a/fs/gfs2/export.c
+++ b/fs/gfs2/export.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#include <linux/spinlock.h> 7#include <linux/spinlock.h>
diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
index 58a768e59712..d174b1f8fd08 100644
--- a/fs/gfs2/file.c
+++ b/fs/gfs2/file.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#include <linux/slab.h> 7#include <linux/slab.h>
diff --git a/fs/gfs2/gfs2.h b/fs/gfs2/gfs2.h
index ef606e3a5cf4..ed78e5f20f41 100644
--- a/fs/gfs2/gfs2.h
+++ b/fs/gfs2/gfs2.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __GFS2_DOT_H__ 7#ifndef __GFS2_DOT_H__
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
index 15c605cfcfc8..f1ebcb42cbf5 100644
--- a/fs/gfs2/glock.c
+++ b/fs/gfs2/glock.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 7#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@@ -140,7 +137,7 @@ void gfs2_glock_free(struct gfs2_glock *gl)
140{ 137{
141 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; 138 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd;
142 139
143 BUG_ON(test_bit(GLF_REVOKES, &gl->gl_flags)); 140 BUG_ON(atomic_read(&gl->gl_revokes));
144 rhashtable_remove_fast(&gl_hash_table, &gl->gl_node, ht_parms); 141 rhashtable_remove_fast(&gl_hash_table, &gl->gl_node, ht_parms);
145 smp_mb(); 142 smp_mb();
146 wake_up_glock(gl); 143 wake_up_glock(gl);
@@ -1801,7 +1798,7 @@ void gfs2_dump_glock(struct seq_file *seq, struct gfs2_glock *gl)
1801 state2str(gl->gl_target), 1798 state2str(gl->gl_target),
1802 state2str(gl->gl_demote_state), dtime, 1799 state2str(gl->gl_demote_state), dtime,
1803 atomic_read(&gl->gl_ail_count), 1800 atomic_read(&gl->gl_ail_count),
1804 test_bit(GLF_REVOKES, &gl->gl_flags) ? 1 : 0, 1801 atomic_read(&gl->gl_revokes),
1805 (int)gl->gl_lockref.count, gl->gl_hold_time); 1802 (int)gl->gl_lockref.count, gl->gl_hold_time);
1806 1803
1807 list_for_each_entry(gh, &gl->gl_holders, gh_list) 1804 list_for_each_entry(gh, &gl->gl_holders, gh_list)
diff --git a/fs/gfs2/glock.h b/fs/gfs2/glock.h
index 936b3295839c..149d7f6af085 100644
--- a/fs/gfs2/glock.h
+++ b/fs/gfs2/glock.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __GLOCK_DOT_H__ 7#ifndef __GLOCK_DOT_H__
diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c
index 24ada3ccc525..cf4c767005b1 100644
--- a/fs/gfs2/glops.c
+++ b/fs/gfs2/glops.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#include <linux/spinlock.h> 7#include <linux/spinlock.h>
diff --git a/fs/gfs2/glops.h b/fs/gfs2/glops.h
index 8ed1857c1a8d..2dd192e85618 100644
--- a/fs/gfs2/glops.h
+++ b/fs/gfs2/glops.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __GLOPS_DOT_H__ 7#ifndef __GLOPS_DOT_H__
diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
index b15755068593..c9af93ac6c73 100644
--- a/fs/gfs2/incore.h
+++ b/fs/gfs2/incore.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __INCORE_DOT_H__ 7#ifndef __INCORE_DOT_H__
@@ -345,7 +342,6 @@ enum {
345 GLF_OBJECT = 14, /* Used only for tracing */ 342 GLF_OBJECT = 14, /* Used only for tracing */
346 GLF_BLOCKING = 15, 343 GLF_BLOCKING = 15,
347 GLF_INODE_CREATING = 16, /* Inode creation occurring */ 344 GLF_INODE_CREATING = 16, /* Inode creation occurring */
348 GLF_REVOKES = 17, /* Glock has revokes in queue */
349}; 345};
350 346
351struct gfs2_glock { 347struct gfs2_glock {
@@ -375,6 +371,7 @@ struct gfs2_glock {
375 struct list_head gl_lru; 371 struct list_head gl_lru;
376 struct list_head gl_ail_list; 372 struct list_head gl_ail_list;
377 atomic_t gl_ail_count; 373 atomic_t gl_ail_count;
374 atomic_t gl_revokes;
378 struct delayed_work gl_work; 375 struct delayed_work gl_work;
379 union { 376 union {
380 /* For inode and iopen glocks only */ 377 /* For inode and iopen glocks only */
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
index 998051c4aea7..b296c59832a7 100644
--- a/fs/gfs2/inode.c
+++ b/fs/gfs2/inode.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#include <linux/slab.h> 7#include <linux/slab.h>
diff --git a/fs/gfs2/inode.h b/fs/gfs2/inode.h
index 18d4af7417fa..580adbf0b5e1 100644
--- a/fs/gfs2/inode.h
+++ b/fs/gfs2/inode.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __INODE_DOT_H__ 7#ifndef __INODE_DOT_H__
diff --git a/fs/gfs2/lock_dlm.c b/fs/gfs2/lock_dlm.c
index 31df26ed7854..4361804646d8 100644
--- a/fs/gfs2/lock_dlm.c
+++ b/fs/gfs2/lock_dlm.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright 2004-2011 Red Hat, Inc. 4 * Copyright 2004-2011 Red Hat, Inc.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 7#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@@ -31,9 +28,10 @@
31 * @delta is the difference between the current rtt sample and the 28 * @delta is the difference between the current rtt sample and the
32 * running average srtt. We add 1/8 of that to the srtt in order to 29 * running average srtt. We add 1/8 of that to the srtt in order to
33 * update the current srtt estimate. The variance estimate is a bit 30 * update the current srtt estimate. The variance estimate is a bit
34 * more complicated. We subtract the abs value of the @delta from 31 * more complicated. We subtract the current variance estimate from
35 * the current variance estimate and add 1/4 of that to the running 32 * the abs value of the @delta and add 1/4 of that to the running
36 * total. 33 * total. That's equivalent to 3/4 of the current variance
34 * estimate plus 1/4 of the abs of @delta.
37 * 35 *
38 * Note that the index points at the array entry containing the smoothed 36 * Note that the index points at the array entry containing the smoothed
39 * mean value, and the variance is always in the following entry 37 * mean value, and the variance is always in the following entry
@@ -49,7 +47,7 @@ static inline void gfs2_update_stats(struct gfs2_lkstats *s, unsigned index,
49 s64 delta = sample - s->stats[index]; 47 s64 delta = sample - s->stats[index];
50 s->stats[index] += (delta >> 3); 48 s->stats[index] += (delta >> 3);
51 index++; 49 index++;
52 s->stats[index] += ((abs(delta) - s->stats[index]) >> 2); 50 s->stats[index] += (s64)(abs(delta) - s->stats[index]) >> 2;
53} 51}
54 52
55/** 53/**
diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c
index a2e1df488df0..c4c9700c366e 100644
--- a/fs/gfs2/log.c
+++ b/fs/gfs2/log.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#include <linux/sched.h> 7#include <linux/sched.h>
@@ -606,10 +603,8 @@ void gfs2_add_revoke(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd)
606 gfs2_remove_from_ail(bd); /* drops ref on bh */ 603 gfs2_remove_from_ail(bd); /* drops ref on bh */
607 bd->bd_bh = NULL; 604 bd->bd_bh = NULL;
608 sdp->sd_log_num_revoke++; 605 sdp->sd_log_num_revoke++;
609 if (!test_bit(GLF_REVOKES, &gl->gl_flags)) { 606 if (atomic_inc_return(&gl->gl_revokes) == 1)
610 set_bit(GLF_REVOKES, &gl->gl_flags);
611 gfs2_glock_hold(gl); 607 gfs2_glock_hold(gl);
612 }
613 set_bit(GLF_LFLUSH, &gl->gl_flags); 608 set_bit(GLF_LFLUSH, &gl->gl_flags);
614 list_add(&bd->bd_list, &sdp->sd_log_revokes); 609 list_add(&bd->bd_list, &sdp->sd_log_revokes);
615} 610}
diff --git a/fs/gfs2/log.h b/fs/gfs2/log.h
index 7a34a3234266..2315fca47a2b 100644
--- a/fs/gfs2/log.h
+++ b/fs/gfs2/log.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __LOG_DOT_H__ 7#ifndef __LOG_DOT_H__
diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c
index 33ab662c9aac..1921cda034fd 100644
--- a/fs/gfs2/lops.c
+++ b/fs/gfs2/lops.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#include <linux/sched.h> 7#include <linux/sched.h>
@@ -860,34 +857,19 @@ static void revoke_lo_before_commit(struct gfs2_sbd *sdp, struct gfs2_trans *tr)
860static void revoke_lo_after_commit(struct gfs2_sbd *sdp, struct gfs2_trans *tr) 857static void revoke_lo_after_commit(struct gfs2_sbd *sdp, struct gfs2_trans *tr)
861{ 858{
862 struct list_head *head = &sdp->sd_log_revokes; 859 struct list_head *head = &sdp->sd_log_revokes;
863 struct gfs2_bufdata *bd, *tmp; 860 struct gfs2_bufdata *bd;
864 861 struct gfs2_glock *gl;
865 /*
866 * Glocks can be referenced repeatedly on the revoke list, but the list
867 * only holds one reference. All glocks on the list will have the
868 * GLF_REVOKES flag set initially.
869 */
870
871 list_for_each_entry_safe(bd, tmp, head, bd_list) {
872 struct gfs2_glock *gl = bd->bd_gl;
873 862
874 if (test_bit(GLF_REVOKES, &gl->gl_flags)) { 863 while (!list_empty(head)) {
875 /* Keep each glock on the list exactly once. */ 864 bd = list_entry(head->next, struct gfs2_bufdata, bd_list);
876 clear_bit(GLF_REVOKES, &gl->gl_flags); 865 list_del_init(&bd->bd_list);
877 continue; 866 gl = bd->bd_gl;
867 if (atomic_dec_return(&gl->gl_revokes) == 0) {
868 clear_bit(GLF_LFLUSH, &gl->gl_flags);
869 gfs2_glock_queue_put(gl);
878 } 870 }
879 list_del(&bd->bd_list);
880 kmem_cache_free(gfs2_bufdata_cachep, bd);
881 }
882 list_for_each_entry_safe(bd, tmp, head, bd_list) {
883 struct gfs2_glock *gl = bd->bd_gl;
884
885 list_del(&bd->bd_list);
886 kmem_cache_free(gfs2_bufdata_cachep, bd); 871 kmem_cache_free(gfs2_bufdata_cachep, bd);
887 clear_bit(GLF_LFLUSH, &gl->gl_flags);
888 gfs2_glock_queue_put(gl);
889 } 872 }
890 /* the list is empty now */
891} 873}
892 874
893static void revoke_lo_before_scan(struct gfs2_jdesc *jd, 875static void revoke_lo_before_scan(struct gfs2_jdesc *jd,
diff --git a/fs/gfs2/lops.h b/fs/gfs2/lops.h
index f195ffb435ac..9c059957a733 100644
--- a/fs/gfs2/lops.h
+++ b/fs/gfs2/lops.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __LOPS_DOT_H__ 7#ifndef __LOPS_DOT_H__
diff --git a/fs/gfs2/main.c b/fs/gfs2/main.c
index c700738de1f7..a1a295b739fb 100644
--- a/fs/gfs2/main.c
+++ b/fs/gfs2/main.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 7#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@@ -59,6 +56,7 @@ static void gfs2_init_glock_once(void *foo)
59 INIT_LIST_HEAD(&gl->gl_lru); 56 INIT_LIST_HEAD(&gl->gl_lru);
60 INIT_LIST_HEAD(&gl->gl_ail_list); 57 INIT_LIST_HEAD(&gl->gl_ail_list);
61 atomic_set(&gl->gl_ail_count, 0); 58 atomic_set(&gl->gl_ail_count, 0);
59 atomic_set(&gl->gl_revokes, 0);
62} 60}
63 61
64static void gfs2_init_gl_aspace_once(void *foo) 62static void gfs2_init_gl_aspace_once(void *foo)
diff --git a/fs/gfs2/meta_io.c b/fs/gfs2/meta_io.c
index ff86e1d4f8ff..456763e18def 100644
--- a/fs/gfs2/meta_io.c
+++ b/fs/gfs2/meta_io.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#include <linux/sched.h> 7#include <linux/sched.h>
diff --git a/fs/gfs2/meta_io.h b/fs/gfs2/meta_io.h
index ffdf6aa3509d..eafb74e861c6 100644
--- a/fs/gfs2/meta_io.h
+++ b/fs/gfs2/meta_io.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __DIO_DOT_H__ 7#ifndef __DIO_DOT_H__
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index 46f6615eaf12..08823bb3b2d0 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 7#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
index 2ae5a109eea7..8189b581236d 100644
--- a/fs/gfs2/quota.c
+++ b/fs/gfs2/quota.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10/* 7/*
diff --git a/fs/gfs2/quota.h b/fs/gfs2/quota.h
index 836f29480be6..765627d9a91e 100644
--- a/fs/gfs2/quota.h
+++ b/fs/gfs2/quota.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __QUOTA_DOT_H__ 7#ifndef __QUOTA_DOT_H__
diff --git a/fs/gfs2/recovery.c b/fs/gfs2/recovery.c
index 389b3ef77e20..2299a3fa1911 100644
--- a/fs/gfs2/recovery.c
+++ b/fs/gfs2/recovery.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#include <linux/module.h> 7#include <linux/module.h>
diff --git a/fs/gfs2/recovery.h b/fs/gfs2/recovery.h
index 1831a1974c8c..0d30f8e804f4 100644
--- a/fs/gfs2/recovery.h
+++ b/fs/gfs2/recovery.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __RECOVERY_DOT_H__ 7#ifndef __RECOVERY_DOT_H__
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index 15d6e32de55f..36f20a89d0c2 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 7#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/fs/gfs2/rgrp.h b/fs/gfs2/rgrp.h
index 499079a9dbbe..6a3adf0ee0b7 100644
--- a/fs/gfs2/rgrp.h
+++ b/fs/gfs2/rgrp.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __RGRP_DOT_H__ 7#ifndef __RGRP_DOT_H__
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c
index fbf6b1fd330b..b70cea5c8c59 100644
--- a/fs/gfs2/super.c
+++ b/fs/gfs2/super.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 7#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@@ -1477,7 +1474,7 @@ static void gfs2_final_release_pages(struct gfs2_inode *ip)
1477 truncate_inode_pages(gfs2_glock2aspace(ip->i_gl), 0); 1474 truncate_inode_pages(gfs2_glock2aspace(ip->i_gl), 0);
1478 truncate_inode_pages(&inode->i_data, 0); 1475 truncate_inode_pages(&inode->i_data, 0);
1479 1476
1480 if (!test_bit(GLF_REVOKES, &gl->gl_flags)) { 1477 if (atomic_read(&gl->gl_revokes) == 0) {
1481 clear_bit(GLF_LFLUSH, &gl->gl_flags); 1478 clear_bit(GLF_LFLUSH, &gl->gl_flags);
1482 clear_bit(GLF_DIRTY, &gl->gl_flags); 1479 clear_bit(GLF_DIRTY, &gl->gl_flags);
1483 } 1480 }
diff --git a/fs/gfs2/super.h b/fs/gfs2/super.h
index 73c97dccae21..c5f42f0c503b 100644
--- a/fs/gfs2/super.h
+++ b/fs/gfs2/super.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __SUPER_DOT_H__ 7#ifndef __SUPER_DOT_H__
diff --git a/fs/gfs2/sys.c b/fs/gfs2/sys.c
index 08e4996adc23..159aedf63c2a 100644
--- a/fs/gfs2/sys.c
+++ b/fs/gfs2/sys.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 7#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/fs/gfs2/sys.h b/fs/gfs2/sys.h
index 79182d6ad6ac..f8dacf20e1a4 100644
--- a/fs/gfs2/sys.h
+++ b/fs/gfs2/sys.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __SYS_DOT_H__ 7#ifndef __SYS_DOT_H__
diff --git a/fs/gfs2/trans.c b/fs/gfs2/trans.c
index d328da7cde36..6f67ef7aa412 100644
--- a/fs/gfs2/trans.c
+++ b/fs/gfs2/trans.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 7#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/fs/gfs2/trans.h b/fs/gfs2/trans.h
index 1e39f056ccb7..6071334de035 100644
--- a/fs/gfs2/trans.h
+++ b/fs/gfs2/trans.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __TRANS_DOT_H__ 7#ifndef __TRANS_DOT_H__
diff --git a/fs/gfs2/util.c b/fs/gfs2/util.c
index 0a814ccac41d..a7e55234211f 100644
--- a/fs/gfs2/util.c
+++ b/fs/gfs2/util.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 7#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/fs/gfs2/util.h b/fs/gfs2/util.h
index 9278fecba632..4b68b2c1fe56 100644
--- a/fs/gfs2/util.h
+++ b/fs/gfs2/util.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __UTIL_DOT_H__ 7#ifndef __UTIL_DOT_H__
diff --git a/fs/gfs2/xattr.c b/fs/gfs2/xattr.c
index 675e704830df..bbe593d16bea 100644
--- a/fs/gfs2/xattr.c
+++ b/fs/gfs2/xattr.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#include <linux/slab.h> 7#include <linux/slab.h>
diff --git a/fs/gfs2/xattr.h b/fs/gfs2/xattr.h
index 2d887c88eb49..2aed9d7d483d 100644
--- a/fs/gfs2/xattr.h
+++ b/fs/gfs2/xattr.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
4 *
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License version 2.
8 */ 5 */
9 6
10#ifndef __EATTR_DOT_H__ 7#ifndef __EATTR_DOT_H__
diff --git a/fs/hfs/Kconfig b/fs/hfs/Kconfig
index 998e3a6decf3..44f6e89bcb75 100644
--- a/fs/hfs/Kconfig
+++ b/fs/hfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config HFS_FS 2config HFS_FS
2 tristate "Apple Macintosh file system support" 3 tristate "Apple Macintosh file system support"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/hfs/Makefile b/fs/hfs/Makefile
index c41f5a85f42d..b65459bf3dc4 100644
--- a/fs/hfs/Makefile
+++ b/fs/hfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the Linux hfs filesystem routines. 3# Makefile for the Linux hfs filesystem routines.
3# 4#
diff --git a/fs/hfsplus/Kconfig b/fs/hfsplus/Kconfig
index a63371815aab..7d4229aecec0 100644
--- a/fs/hfsplus/Kconfig
+++ b/fs/hfsplus/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config HFSPLUS_FS 2config HFSPLUS_FS
2 tristate "Apple Extended HFS file system support" 3 tristate "Apple Extended HFS file system support"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c
index 0cc5feff76cd..2b9e5743105e 100644
--- a/fs/hfsplus/super.c
+++ b/fs/hfsplus/super.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/hfsplus/super.c 3 * linux/fs/hfsplus/super.c
3 * 4 *
diff --git a/fs/hpfs/Kconfig b/fs/hpfs/Kconfig
index 56bd15c5bf6c..56aa0336254a 100644
--- a/fs/hpfs/Kconfig
+++ b/fs/hpfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config HPFS_FS 2config HPFS_FS
2 tristate "OS/2 HPFS file system support" 3 tristate "OS/2 HPFS file system support"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/hpfs/Makefile b/fs/hpfs/Makefile
index 57b786fb9827..153c17382c19 100644
--- a/fs/hpfs/Makefile
+++ b/fs/hpfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the Linux hpfs filesystem routines. 3# Makefile for the Linux hpfs filesystem routines.
3# 4#
diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c
index ed4264bca790..9db6d84f0d62 100644
--- a/fs/hpfs/super.c
+++ b/fs/hpfs/super.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/hpfs/super.c 3 * linux/fs/hpfs/super.c
3 * 4 *
diff --git a/fs/hugetlbfs/Makefile b/fs/hugetlbfs/Makefile
index 6adf870c63c6..d876ecfbe6bb 100644
--- a/fs/hugetlbfs/Makefile
+++ b/fs/hugetlbfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the linux ramfs routines. 3# Makefile for the linux ramfs routines.
3# 4#
diff --git a/fs/inode.c b/fs/inode.c
index e9d18b2c3f91..2bf21e2c90fc 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * (C) 1997 Linus Torvalds 3 * (C) 1997 Linus Torvalds
3 * (C) 1999 Andrea Arcangeli <andrea@suse.de> (dynamic inode allocation) 4 * (C) 1999 Andrea Arcangeli <andrea@suse.de> (dynamic inode allocation)
@@ -361,7 +362,7 @@ EXPORT_SYMBOL(inc_nlink);
361 362
362static void __address_space_init_once(struct address_space *mapping) 363static void __address_space_init_once(struct address_space *mapping)
363{ 364{
364 xa_init_flags(&mapping->i_pages, XA_FLAGS_LOCK_IRQ); 365 xa_init_flags(&mapping->i_pages, XA_FLAGS_LOCK_IRQ | XA_FLAGS_ACCOUNT);
365 init_rwsem(&mapping->i_mmap_rwsem); 366 init_rwsem(&mapping->i_mmap_rwsem);
366 INIT_LIST_HEAD(&mapping->private_list); 367 INIT_LIST_HEAD(&mapping->private_list);
367 spin_lock_init(&mapping->private_lock); 368 spin_lock_init(&mapping->private_lock);
diff --git a/fs/internal.h b/fs/internal.h
index 0010889f2e85..a48ef81be37d 100644
--- a/fs/internal.h
+++ b/fs/internal.h
@@ -1,12 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* fs/ internal definitions 2/* fs/ internal definitions
2 * 3 *
3 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12struct super_block; 8struct super_block;
diff --git a/fs/io_uring.c b/fs/io_uring.c
index 310f8d17c53e..4ef62a45045d 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -579,6 +579,7 @@ static struct io_kiocb *io_get_req(struct io_ring_ctx *ctx,
579 state->cur_req++; 579 state->cur_req++;
580 } 580 }
581 581
582 req->file = NULL;
582 req->ctx = ctx; 583 req->ctx = ctx;
583 req->flags = 0; 584 req->flags = 0;
584 /* one is dropped after submission, the other at completion */ 585 /* one is dropped after submission, the other at completion */
@@ -1801,10 +1802,8 @@ static int io_req_set_file(struct io_ring_ctx *ctx, const struct sqe_submit *s,
1801 req->sequence = ctx->cached_sq_head - 1; 1802 req->sequence = ctx->cached_sq_head - 1;
1802 } 1803 }
1803 1804
1804 if (!io_op_needs_file(s->sqe)) { 1805 if (!io_op_needs_file(s->sqe))
1805 req->file = NULL;
1806 return 0; 1806 return 0;
1807 }
1808 1807
1809 if (flags & IOSQE_FIXED_FILE) { 1808 if (flags & IOSQE_FIXED_FILE) {
1810 if (unlikely(!ctx->user_files || 1809 if (unlikely(!ctx->user_files ||
@@ -2201,11 +2200,12 @@ static int io_cqring_wait(struct io_ring_ctx *ctx, int min_events,
2201 } 2200 }
2202 2201
2203 ret = wait_event_interruptible(ctx->wait, io_cqring_events(ring) >= min_events); 2202 ret = wait_event_interruptible(ctx->wait, io_cqring_events(ring) >= min_events);
2204 if (ret == -ERESTARTSYS)
2205 ret = -EINTR;
2206 2203
2207 if (sig) 2204 if (sig)
2208 restore_user_sigmask(sig, &sigsaved); 2205 restore_user_sigmask(sig, &sigsaved, ret == -ERESTARTSYS);
2206
2207 if (ret == -ERESTARTSYS)
2208 ret = -EINTR;
2209 2209
2210 return READ_ONCE(ring->r.head) == READ_ONCE(ring->r.tail) ? ret : 0; 2210 return READ_ONCE(ring->r.head) == READ_ONCE(ring->r.tail) ? ret : 0;
2211} 2211}
@@ -2616,7 +2616,7 @@ static int io_sqe_buffer_register(struct io_ring_ctx *ctx, void __user *arg,
2616 2616
2617 ret = io_copy_iov(ctx, &iov, arg, i); 2617 ret = io_copy_iov(ctx, &iov, arg, i);
2618 if (ret) 2618 if (ret)
2619 break; 2619 goto err;
2620 2620
2621 /* 2621 /*
2622 * Don't impose further limits on the size and buffer 2622 * Don't impose further limits on the size and buffer
@@ -2777,8 +2777,10 @@ static void io_ring_ctx_free(struct io_ring_ctx *ctx)
2777 io_eventfd_unregister(ctx); 2777 io_eventfd_unregister(ctx);
2778 2778
2779#if defined(CONFIG_UNIX) 2779#if defined(CONFIG_UNIX)
2780 if (ctx->ring_sock) 2780 if (ctx->ring_sock) {
2781 ctx->ring_sock->file = NULL; /* so that iput() is called */
2781 sock_release(ctx->ring_sock); 2782 sock_release(ctx->ring_sock);
2783 }
2782#endif 2784#endif
2783 2785
2784 io_mem_free(ctx->sq_ring); 2786 io_mem_free(ctx->sq_ring);
diff --git a/fs/iomap.c b/fs/iomap.c
index 23ef63fd1669..12654c2e78f8 100644
--- a/fs/iomap.c
+++ b/fs/iomap.c
@@ -287,7 +287,7 @@ iomap_readpage_actor(struct inode *inode, loff_t pos, loff_t length, void *data,
287 struct iomap_readpage_ctx *ctx = data; 287 struct iomap_readpage_ctx *ctx = data;
288 struct page *page = ctx->cur_page; 288 struct page *page = ctx->cur_page;
289 struct iomap_page *iop = iomap_page_create(inode, page); 289 struct iomap_page *iop = iomap_page_create(inode, page);
290 bool is_contig = false; 290 bool same_page = false, is_contig = false;
291 loff_t orig_pos = pos; 291 loff_t orig_pos = pos;
292 unsigned poff, plen; 292 unsigned poff, plen;
293 sector_t sector; 293 sector_t sector;
@@ -315,10 +315,14 @@ iomap_readpage_actor(struct inode *inode, loff_t pos, loff_t length, void *data,
315 * Try to merge into a previous segment if we can. 315 * Try to merge into a previous segment if we can.
316 */ 316 */
317 sector = iomap_sector(iomap, pos); 317 sector = iomap_sector(iomap, pos);
318 if (ctx->bio && bio_end_sector(ctx->bio) == sector) { 318 if (ctx->bio && bio_end_sector(ctx->bio) == sector)
319 if (__bio_try_merge_page(ctx->bio, page, plen, poff, true))
320 goto done;
321 is_contig = true; 319 is_contig = true;
320
321 if (is_contig &&
322 __bio_try_merge_page(ctx->bio, page, plen, poff, &same_page)) {
323 if (!same_page && iop)
324 atomic_inc(&iop->read_count);
325 goto done;
322 } 326 }
323 327
324 /* 328 /*
diff --git a/fs/isofs/Kconfig b/fs/isofs/Kconfig
index 8ab9878e3671..5e7419599f50 100644
--- a/fs/isofs/Kconfig
+++ b/fs/isofs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config ISO9660_FS 2config ISO9660_FS
2 tristate "ISO 9660 CDROM file system support" 3 tristate "ISO 9660 CDROM file system support"
3 help 4 help
diff --git a/fs/isofs/compress.c b/fs/isofs/compress.c
index 10205ececc27..bc12ac7e2312 100644
--- a/fs/isofs/compress.c
+++ b/fs/isofs/compress.c
@@ -1,13 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- linux-c -*- ------------------------------------------------------- * 2/* -*- linux-c -*- ------------------------------------------------------- *
2 * 3 *
3 * Copyright 2001 H. Peter Anvin - All Rights Reserved 4 * Copyright 2001 H. Peter Anvin - All Rights Reserved
4 * 5 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139,
8 * USA; either version 2 of the License, or (at your option) any later
9 * version; incorporated herein by reference.
10 *
11 * ----------------------------------------------------------------------- */ 6 * ----------------------------------------------------------------------- */
12 7
13/* 8/*
diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c
index 603b052a3c94..9e30d8703735 100644
--- a/fs/isofs/inode.c
+++ b/fs/isofs/inode.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/isofs/inode.c 3 * linux/fs/isofs/inode.c
3 * 4 *
diff --git a/fs/isofs/zisofs.h b/fs/isofs/zisofs.h
index 273795709155..70f1a218fc92 100644
--- a/fs/isofs/zisofs.h
+++ b/fs/isofs/zisofs.h
@@ -1,13 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* ----------------------------------------------------------------------- * 2/* ----------------------------------------------------------------------- *
2 * 3 *
3 * Copyright 2001 H. Peter Anvin - All Rights Reserved 4 * Copyright 2001 H. Peter Anvin - All Rights Reserved
4 * 5 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139,
8 * USA; either version 2 of the License, or (at your option) any later
9 * version; incorporated herein by reference.
10 *
11 * ----------------------------------------------------------------------- */ 6 * ----------------------------------------------------------------------- */
12 7
13/* 8/*
diff --git a/fs/jbd2/Kconfig b/fs/jbd2/Kconfig
index 5a9f5534d57b..4ad2c67f93f1 100644
--- a/fs/jbd2/Kconfig
+++ b/fs/jbd2/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config JBD2 2config JBD2
2 tristate 3 tristate
3 select CRC32 4 select CRC32
diff --git a/fs/jbd2/Makefile b/fs/jbd2/Makefile
index 802a3413872a..126b4da6c7de 100644
--- a/fs/jbd2/Makefile
+++ b/fs/jbd2/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the linux journaling routines. 3# Makefile for the linux journaling routines.
3# 4#
diff --git a/fs/jffs2/Kconfig b/fs/jffs2/Kconfig
index ad850c5bf2ca..7c96bc107218 100644
--- a/fs/jffs2/Kconfig
+++ b/fs/jffs2/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config JFFS2_FS 2config JFFS2_FS
2 tristate "Journalling Flash File System v2 (JFFS2) support" 3 tristate "Journalling Flash File System v2 (JFFS2) support"
3 select CRC32 4 select CRC32
diff --git a/fs/jfs/Kconfig b/fs/jfs/Kconfig
index 851de78fdabb..22a273bd4648 100644
--- a/fs/jfs/Kconfig
+++ b/fs/jfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config JFS_FS 2config JFS_FS
2 tristate "JFS filesystem support" 3 tristate "JFS filesystem support"
3 select NLS 4 select NLS
diff --git a/fs/jfs/acl.c b/fs/jfs/acl.c
index ebb299003a5b..92cc0ac2d1fc 100644
--- a/fs/jfs/acl.c
+++ b/fs/jfs/acl.c
@@ -1,21 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2002-2004 3 * Copyright (C) International Business Machines Corp., 2002-2004
3 * Copyright (C) Andreas Gruenbacher, 2001 4 * Copyright (C) Andreas Gruenbacher, 2001
4 * Copyright (C) Linus Torvalds, 1991, 1992 5 * Copyright (C) Linus Torvalds, 1991, 1992
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
14 * the GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */ 6 */
20 7
21#include <linux/sched.h> 8#include <linux/sched.h>
diff --git a/fs/jfs/file.c b/fs/jfs/file.c
index 36665fd37095..930d2701f206 100644
--- a/fs/jfs/file.c
+++ b/fs/jfs/file.c
@@ -1,20 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2002 3 * Copyright (C) International Business Machines Corp., 2000-2002
3 * Portions Copyright (C) Christoph Hellwig, 2001-2002 4 * Portions Copyright (C) Christoph Hellwig, 2001-2002
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19 6
20#include <linux/mm.h> 7#include <linux/mm.h>
diff --git a/fs/jfs/inode.c b/fs/jfs/inode.c
index f2b92b292abe..9486afcdac76 100644
--- a/fs/jfs/inode.c
+++ b/fs/jfs/inode.c
@@ -1,20 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 * Portions Copyright (C) Christoph Hellwig, 2001-2002 4 * Portions Copyright (C) Christoph Hellwig, 2001-2002
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19 6
20#include <linux/fs.h> 7#include <linux/fs.h>
diff --git a/fs/jfs/jfs_acl.h b/fs/jfs/jfs_acl.h
index 489f993b7b13..9f8f92dd6f84 100644
--- a/fs/jfs/jfs_acl.h
+++ b/fs/jfs/jfs_acl.h
@@ -1,19 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2002 3 * Copyright (C) International Business Machines Corp., 2002
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18#ifndef _H_JFS_ACL 5#ifndef _H_JFS_ACL
19#define _H_JFS_ACL 6#define _H_JFS_ACL
diff --git a/fs/jfs/jfs_btree.h b/fs/jfs/jfs_btree.h
index 79c61805bd33..ce055ef50cd3 100644
--- a/fs/jfs/jfs_btree.h
+++ b/fs/jfs/jfs_btree.h
@@ -1,19 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18#ifndef _H_JFS_BTREE 5#ifndef _H_JFS_BTREE
19#define _H_JFS_BTREE 6#define _H_JFS_BTREE
diff --git a/fs/jfs/jfs_debug.c b/fs/jfs/jfs_debug.c
index 35a5b2a81ae0..888cdd685a1e 100644
--- a/fs/jfs/jfs_debug.c
+++ b/fs/jfs/jfs_debug.c
@@ -1,20 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 * Portions Copyright (C) Christoph Hellwig, 2001-2002 4 * Portions Copyright (C) Christoph Hellwig, 2001-2002
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19 6
20#include <linux/fs.h> 7#include <linux/fs.h>
diff --git a/fs/jfs/jfs_debug.h b/fs/jfs/jfs_debug.h
index 0d9e35da8462..48e2150c092e 100644
--- a/fs/jfs/jfs_debug.h
+++ b/fs/jfs/jfs_debug.h
@@ -1,20 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2002 3 * Copyright (C) International Business Machines Corp., 2000-2002
3 * Portions Copyright (C) Christoph Hellwig, 2001-2002 4 * Portions Copyright (C) Christoph Hellwig, 2001-2002
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19#ifndef _H_JFS_DEBUG 6#ifndef _H_JFS_DEBUG
20#define _H_JFS_DEBUG 7#define _H_JFS_DEBUG
diff --git a/fs/jfs/jfs_dinode.h b/fs/jfs/jfs_dinode.h
index 1682a87c00b2..5fa9fd594115 100644
--- a/fs/jfs/jfs_dinode.h
+++ b/fs/jfs/jfs_dinode.h
@@ -1,19 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2001 3 * Copyright (C) International Business Machines Corp., 2000-2001
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18#ifndef _H_JFS_DINODE 5#ifndef _H_JFS_DINODE
19#define _H_JFS_DINODE 6#define _H_JFS_DINODE
diff --git a/fs/jfs/jfs_discard.c b/fs/jfs/jfs_discard.c
index f76ff0a46444..575cb2ba74fc 100644
--- a/fs/jfs/jfs_discard.c
+++ b/fs/jfs/jfs_discard.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) Tino Reichardt, 2012 3 * Copyright (C) Tino Reichardt, 2012
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18 5
19#include <linux/fs.h> 6#include <linux/fs.h>
diff --git a/fs/jfs/jfs_discard.h b/fs/jfs/jfs_discard.h
index 40d1ee6081a0..05215fa27ebb 100644
--- a/fs/jfs/jfs_discard.h
+++ b/fs/jfs/jfs_discard.h
@@ -1,19 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) Tino Reichardt, 2012 3 * Copyright (C) Tino Reichardt, 2012
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18#ifndef _H_JFS_DISCARD 5#ifndef _H_JFS_DISCARD
19#define _H_JFS_DISCARD 6#define _H_JFS_DISCARD
diff --git a/fs/jfs/jfs_dmap.c b/fs/jfs/jfs_dmap.c
index 49263e220dbc..caade185e568 100644
--- a/fs/jfs/jfs_dmap.c
+++ b/fs/jfs/jfs_dmap.c
@@ -1,20 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 * Portions Copyright (C) Tino Reichardt, 2012 4 * Portions Copyright (C) Tino Reichardt, 2012
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19 6
20#include <linux/fs.h> 7#include <linux/fs.h>
diff --git a/fs/jfs/jfs_dmap.h b/fs/jfs/jfs_dmap.h
index 562b9a7e4311..29891fad3f09 100644
--- a/fs/jfs/jfs_dmap.h
+++ b/fs/jfs/jfs_dmap.h
@@ -1,19 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2002 3 * Copyright (C) International Business Machines Corp., 2000-2002
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18#ifndef _H_JFS_DMAP 5#ifndef _H_JFS_DMAP
19#define _H_JFS_DMAP 6#define _H_JFS_DMAP
diff --git a/fs/jfs/jfs_dtree.c b/fs/jfs/jfs_dtree.c
index 52bae3f5c914..3acc954f7c04 100644
--- a/fs/jfs/jfs_dtree.c
+++ b/fs/jfs/jfs_dtree.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18 5
19/* 6/*
diff --git a/fs/jfs/jfs_dtree.h b/fs/jfs/jfs_dtree.h
index fd4169e6e698..1758289647a0 100644
--- a/fs/jfs/jfs_dtree.h
+++ b/fs/jfs/jfs_dtree.h
@@ -1,19 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2002 3 * Copyright (C) International Business Machines Corp., 2000-2002
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18#ifndef _H_JFS_DTREE 5#ifndef _H_JFS_DTREE
19#define _H_JFS_DTREE 6#define _H_JFS_DTREE
diff --git a/fs/jfs/jfs_extent.c b/fs/jfs/jfs_extent.c
index 2ae7d59ab10a..f65bd6b35412 100644
--- a/fs/jfs/jfs_extent.c
+++ b/fs/jfs/jfs_extent.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18 5
19#include <linux/fs.h> 6#include <linux/fs.h>
diff --git a/fs/jfs/jfs_extent.h b/fs/jfs/jfs_extent.h
index b567e12c52d3..dd635a8a0f8c 100644
--- a/fs/jfs/jfs_extent.h
+++ b/fs/jfs/jfs_extent.h
@@ -1,19 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2001 3 * Copyright (C) International Business Machines Corp., 2000-2001
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18#ifndef _H_JFS_EXTENT 5#ifndef _H_JFS_EXTENT
19#define _H_JFS_EXTENT 6#define _H_JFS_EXTENT
diff --git a/fs/jfs/jfs_filsys.h b/fs/jfs/jfs_filsys.h
index b67d64671bb4..1e899298f7f0 100644
--- a/fs/jfs/jfs_filsys.h
+++ b/fs/jfs/jfs_filsys.h
@@ -1,19 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2003 3 * Copyright (C) International Business Machines Corp., 2000-2003
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18#ifndef _H_JFS_FILSYS 5#ifndef _H_JFS_FILSYS
19#define _H_JFS_FILSYS 6#define _H_JFS_FILSYS
diff --git a/fs/jfs/jfs_imap.c b/fs/jfs/jfs_imap.c
index 93e8c590ff5c..937ca07b58b1 100644
--- a/fs/jfs/jfs_imap.c
+++ b/fs/jfs/jfs_imap.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18 5
19/* 6/*
diff --git a/fs/jfs/jfs_imap.h b/fs/jfs/jfs_imap.h
index 610a0e9d8941..dd7409febe28 100644
--- a/fs/jfs/jfs_imap.h
+++ b/fs/jfs/jfs_imap.h
@@ -1,19 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2002 3 * Copyright (C) International Business Machines Corp., 2000-2002
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18#ifndef _H_JFS_IMAP 5#ifndef _H_JFS_IMAP
19#define _H_JFS_IMAP 6#define _H_JFS_IMAP
diff --git a/fs/jfs/jfs_incore.h b/fs/jfs/jfs_incore.h
index 340eb8e4f716..a466ec41cfbb 100644
--- a/fs/jfs/jfs_incore.h
+++ b/fs/jfs/jfs_incore.h
@@ -1,20 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 * Portions Copyright (C) Christoph Hellwig, 2001-2002 4 * Portions Copyright (C) Christoph Hellwig, 2001-2002
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19#ifndef _H_JFS_INCORE 6#ifndef _H_JFS_INCORE
20#define _H_JFS_INCORE 7#define _H_JFS_INCORE
diff --git a/fs/jfs/jfs_inode.c b/fs/jfs/jfs_inode.c
index 4572b7cf183d..4cef170630db 100644
--- a/fs/jfs/jfs_inode.c
+++ b/fs/jfs/jfs_inode.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18 5
19#include <linux/fs.h> 6#include <linux/fs.h>
diff --git a/fs/jfs/jfs_inode.h b/fs/jfs/jfs_inode.h
index 7b0b3a40788f..70a0d12e427e 100644
--- a/fs/jfs/jfs_inode.h
+++ b/fs/jfs/jfs_inode.h
@@ -1,19 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2001 3 * Copyright (C) International Business Machines Corp., 2000-2001
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18#ifndef _H_JFS_INODE 5#ifndef _H_JFS_INODE
19#define _H_JFS_INODE 6#define _H_JFS_INODE
diff --git a/fs/jfs/jfs_lock.h b/fs/jfs/jfs_lock.h
index ecf04882265e..feb37dd9debf 100644
--- a/fs/jfs/jfs_lock.h
+++ b/fs/jfs/jfs_lock.h
@@ -1,20 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2001 3 * Copyright (C) International Business Machines Corp., 2000-2001
3 * Portions Copyright (C) Christoph Hellwig, 2001-2002 4 * Portions Copyright (C) Christoph Hellwig, 2001-2002
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19#ifndef _H_JFS_LOCK 6#ifndef _H_JFS_LOCK
20#define _H_JFS_LOCK 7#define _H_JFS_LOCK
diff --git a/fs/jfs/jfs_logmgr.c b/fs/jfs/jfs_logmgr.c
index 4c77b808020b..9330eff210e0 100644
--- a/fs/jfs/jfs_logmgr.c
+++ b/fs/jfs/jfs_logmgr.c
@@ -1,20 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 * Portions Copyright (C) Christoph Hellwig, 2001-2002 4 * Portions Copyright (C) Christoph Hellwig, 2001-2002
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19 6
20/* 7/*
diff --git a/fs/jfs/jfs_logmgr.h b/fs/jfs/jfs_logmgr.h
index 870fc22360e7..7fd125c8dd19 100644
--- a/fs/jfs/jfs_logmgr.h
+++ b/fs/jfs/jfs_logmgr.h
@@ -1,20 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 * Portions Copyright (C) Christoph Hellwig, 2001-2002 4 * Portions Copyright (C) Christoph Hellwig, 2001-2002
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19#ifndef _H_JFS_LOGMGR 6#ifndef _H_JFS_LOGMGR
20#define _H_JFS_LOGMGR 7#define _H_JFS_LOGMGR
diff --git a/fs/jfs/jfs_metapage.c b/fs/jfs/jfs_metapage.c
index fa2c6824c7f2..a2f5338a5ea1 100644
--- a/fs/jfs/jfs_metapage.c
+++ b/fs/jfs/jfs_metapage.c
@@ -1,20 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2005 3 * Copyright (C) International Business Machines Corp., 2000-2005
3 * Portions Copyright (C) Christoph Hellwig, 2001-2002 4 * Portions Copyright (C) Christoph Hellwig, 2001-2002
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19 6
20#include <linux/fs.h> 7#include <linux/fs.h>
diff --git a/fs/jfs/jfs_metapage.h b/fs/jfs/jfs_metapage.h
index 8b0ee514eb84..4179f9df4deb 100644
--- a/fs/jfs/jfs_metapage.h
+++ b/fs/jfs/jfs_metapage.h
@@ -1,20 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2002 3 * Copyright (C) International Business Machines Corp., 2000-2002
3 * Portions Copyright (C) Christoph Hellwig, 2001-2002 4 * Portions Copyright (C) Christoph Hellwig, 2001-2002
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19#ifndef _H_JFS_METAPAGE 6#ifndef _H_JFS_METAPAGE
20#define _H_JFS_METAPAGE 7#define _H_JFS_METAPAGE
diff --git a/fs/jfs/jfs_mount.c b/fs/jfs/jfs_mount.c
index c9c1f16b93df..eb8b9e233d73 100644
--- a/fs/jfs/jfs_mount.c
+++ b/fs/jfs/jfs_mount.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18 5
19/* 6/*
diff --git a/fs/jfs/jfs_superblock.h b/fs/jfs/jfs_superblock.h
index eb03de7fa925..93402c42070f 100644
--- a/fs/jfs/jfs_superblock.h
+++ b/fs/jfs/jfs_superblock.h
@@ -1,19 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2003 3 * Copyright (C) International Business Machines Corp., 2000-2003
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18#ifndef _H_JFS_SUPERBLOCK 5#ifndef _H_JFS_SUPERBLOCK
19#define _H_JFS_SUPERBLOCK 6#define _H_JFS_SUPERBLOCK
diff --git a/fs/jfs/jfs_txnmgr.c b/fs/jfs/jfs_txnmgr.c
index 78789c5ed36b..c8ce7f1bc594 100644
--- a/fs/jfs/jfs_txnmgr.c
+++ b/fs/jfs/jfs_txnmgr.c
@@ -1,20 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2005 3 * Copyright (C) International Business Machines Corp., 2000-2005
3 * Portions Copyright (C) Christoph Hellwig, 2001-2002 4 * Portions Copyright (C) Christoph Hellwig, 2001-2002
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19 6
20/* 7/*
diff --git a/fs/jfs/jfs_txnmgr.h b/fs/jfs/jfs_txnmgr.h
index ab7288937019..ba71eb5ced56 100644
--- a/fs/jfs/jfs_txnmgr.h
+++ b/fs/jfs/jfs_txnmgr.h
@@ -1,19 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18#ifndef _H_JFS_TXNMGR 5#ifndef _H_JFS_TXNMGR
19#define _H_JFS_TXNMGR 6#define _H_JFS_TXNMGR
diff --git a/fs/jfs/jfs_types.h b/fs/jfs/jfs_types.h
index 8f602dcb51fa..3ff9f26bc3e6 100644
--- a/fs/jfs/jfs_types.h
+++ b/fs/jfs/jfs_types.h
@@ -1,19 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18#ifndef _H_JFS_TYPES 5#ifndef _H_JFS_TYPES
19#define _H_JFS_TYPES 6#define _H_JFS_TYPES
diff --git a/fs/jfs/jfs_umount.c b/fs/jfs/jfs_umount.c
index 7971f37534a3..3e8b13e6aa01 100644
--- a/fs/jfs/jfs_umount.c
+++ b/fs/jfs/jfs_umount.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18 5
19/* 6/*
diff --git a/fs/jfs/jfs_unicode.c b/fs/jfs/jfs_unicode.c
index 0148e2e4d97a..0c1e9027245a 100644
--- a/fs/jfs/jfs_unicode.c
+++ b/fs/jfs/jfs_unicode.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18 5
19#include <linux/fs.h> 6#include <linux/fs.h>
diff --git a/fs/jfs/jfs_unicode.h b/fs/jfs/jfs_unicode.h
index 8f0f02cb6ca6..9db62d047daa 100644
--- a/fs/jfs/jfs_unicode.h
+++ b/fs/jfs/jfs_unicode.h
@@ -1,20 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2002 3 * Copyright (C) International Business Machines Corp., 2000-2002
3 * Portions Copyright (C) Christoph Hellwig, 2001-2002 4 * Portions Copyright (C) Christoph Hellwig, 2001-2002
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19#ifndef _H_JFS_UNICODE 6#ifndef _H_JFS_UNICODE
20#define _H_JFS_UNICODE 7#define _H_JFS_UNICODE
diff --git a/fs/jfs/jfs_uniupr.c b/fs/jfs/jfs_uniupr.c
index cfe50666d312..d0b18c7befb8 100644
--- a/fs/jfs/jfs_uniupr.c
+++ b/fs/jfs/jfs_uniupr.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2002 3 * Copyright (C) International Business Machines Corp., 2000-2002
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18 5
19#include <linux/fs.h> 6#include <linux/fs.h>
diff --git a/fs/jfs/jfs_xattr.h b/fs/jfs/jfs_xattr.h
index 561f6af46288..f0558b3348da 100644
--- a/fs/jfs/jfs_xattr.h
+++ b/fs/jfs/jfs_xattr.h
@@ -1,19 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2002 3 * Copyright (C) International Business Machines Corp., 2000-2002
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18 5
19#ifndef H_JFS_XATTR 6#ifndef H_JFS_XATTR
diff --git a/fs/jfs/jfs_xtree.c b/fs/jfs/jfs_xtree.c
index 2c200b5256a6..16ad920f6fb1 100644
--- a/fs/jfs/jfs_xtree.c
+++ b/fs/jfs/jfs_xtree.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2005 3 * Copyright (C) International Business Machines Corp., 2000-2005
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18/* 5/*
19 * jfs_xtree.c: extent allocation descriptor B+-tree manager 6 * jfs_xtree.c: extent allocation descriptor B+-tree manager
diff --git a/fs/jfs/jfs_xtree.h b/fs/jfs/jfs_xtree.h
index 1e0987986d5f..5f51be8596b3 100644
--- a/fs/jfs/jfs_xtree.h
+++ b/fs/jfs/jfs_xtree.h
@@ -1,19 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2002 3 * Copyright (C) International Business Machines Corp., 2000-2002
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18#ifndef _H_JFS_XTREE 5#ifndef _H_JFS_XTREE
19#define _H_JFS_XTREE 6#define _H_JFS_XTREE
diff --git a/fs/jfs/namei.c b/fs/jfs/namei.c
index fa719a1553b6..7a55d14cc1af 100644
--- a/fs/jfs/namei.c
+++ b/fs/jfs/namei.c
@@ -1,20 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 * Portions Copyright (C) Christoph Hellwig, 2001-2002 4 * Portions Copyright (C) Christoph Hellwig, 2001-2002
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19 6
20#include <linux/fs.h> 7#include <linux/fs.h>
diff --git a/fs/jfs/resize.c b/fs/jfs/resize.c
index 7ddcb445a3d9..66acea9d878b 100644
--- a/fs/jfs/resize.c
+++ b/fs/jfs/resize.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17*/ 4*/
18 5
19#include <linux/fs.h> 6#include <linux/fs.h>
diff --git a/fs/jfs/super.c b/fs/jfs/super.c
index 8f78fa374242..f4e10cb9f734 100644
--- a/fs/jfs/super.c
+++ b/fs/jfs/super.c
@@ -1,20 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 * Portions Copyright (C) Christoph Hellwig, 2001-2002 4 * Portions Copyright (C) Christoph Hellwig, 2001-2002
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19 6
20#include <linux/fs.h> 7#include <linux/fs.h>
diff --git a/fs/jfs/symlink.c b/fs/jfs/symlink.c
index 38320607993e..a040719aafc4 100644
--- a/fs/jfs/symlink.c
+++ b/fs/jfs/symlink.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) Christoph Hellwig, 2001-2002 3 * Copyright (C) Christoph Hellwig, 2001-2002
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 * the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 4 */
18 5
19#include <linux/fs.h> 6#include <linux/fs.h>
diff --git a/fs/jfs/xattr.c b/fs/jfs/xattr.c
index a6797986b625..db41e7803163 100644
--- a/fs/jfs/xattr.c
+++ b/fs/jfs/xattr.c
@@ -1,20 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) International Business Machines Corp., 2000-2004 3 * Copyright (C) International Business Machines Corp., 2000-2004
3 * Copyright (C) Christoph Hellwig, 2002 4 * Copyright (C) Christoph Hellwig, 2002
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 5 */
19 6
20#include <linux/capability.h> 7#include <linux/capability.h>
diff --git a/fs/kernfs/Kconfig b/fs/kernfs/Kconfig
index 397b5f7a7a16..e7f09105f6e9 100644
--- a/fs/kernfs/Kconfig
+++ b/fs/kernfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# KERNFS should be selected by its users 3# KERNFS should be selected by its users
3# 4#
diff --git a/fs/kernfs/Makefile b/fs/kernfs/Makefile
index 674337c76673..4ca54ff54c98 100644
--- a/fs/kernfs/Makefile
+++ b/fs/kernfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the kernfs pseudo filesystem 3# Makefile for the kernfs pseudo filesystem
3# 4#
diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
index 016ba88f7335..a387534c9577 100644
--- a/fs/kernfs/dir.c
+++ b/fs/kernfs/dir.c
@@ -1,11 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/kernfs/dir.c - kernfs directory implementation 3 * fs/kernfs/dir.c - kernfs directory implementation
3 * 4 *
4 * Copyright (c) 2001-3 Patrick Mochel 5 * Copyright (c) 2001-3 Patrick Mochel
5 * Copyright (c) 2007 SUSE Linux Products GmbH 6 * Copyright (c) 2007 SUSE Linux Products GmbH
6 * Copyright (c) 2007, 2013 Tejun Heo <tj@kernel.org> 7 * Copyright (c) 2007, 2013 Tejun Heo <tj@kernel.org>
7 *
8 * This file is released under the GPLv2.
9 */ 8 */
10 9
11#include <linux/sched.h> 10#include <linux/sched.h>
diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c
index 553ce0a92b05..e8c792b49616 100644
--- a/fs/kernfs/file.c
+++ b/fs/kernfs/file.c
@@ -1,11 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/kernfs/file.c - kernfs file implementation 3 * fs/kernfs/file.c - kernfs file implementation
3 * 4 *
4 * Copyright (c) 2001-3 Patrick Mochel 5 * Copyright (c) 2001-3 Patrick Mochel
5 * Copyright (c) 2007 SUSE Linux Products GmbH 6 * Copyright (c) 2007 SUSE Linux Products GmbH
6 * Copyright (c) 2007, 2013 Tejun Heo <tj@kernel.org> 7 * Copyright (c) 2007, 2013 Tejun Heo <tj@kernel.org>
7 *
8 * This file is released under the GPLv2.
9 */ 8 */
10 9
11#include <linux/fs.h> 10#include <linux/fs.h>
diff --git a/fs/kernfs/inode.c b/fs/kernfs/inode.c
index f89a0f13840e..f3f3984cce80 100644
--- a/fs/kernfs/inode.c
+++ b/fs/kernfs/inode.c
@@ -1,11 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/kernfs/inode.c - kernfs inode implementation 3 * fs/kernfs/inode.c - kernfs inode implementation
3 * 4 *
4 * Copyright (c) 2001-3 Patrick Mochel 5 * Copyright (c) 2001-3 Patrick Mochel
5 * Copyright (c) 2007 SUSE Linux Products GmbH 6 * Copyright (c) 2007 SUSE Linux Products GmbH
6 * Copyright (c) 2007, 2013 Tejun Heo <tj@kernel.org> 7 * Copyright (c) 2007, 2013 Tejun Heo <tj@kernel.org>
7 *
8 * This file is released under the GPLv2.
9 */ 8 */
10 9
11#include <linux/pagemap.h> 10#include <linux/pagemap.h>
diff --git a/fs/kernfs/kernfs-internal.h b/fs/kernfs/kernfs-internal.h
index 3c437990f39a..02ce570a9a3c 100644
--- a/fs/kernfs/kernfs-internal.h
+++ b/fs/kernfs/kernfs-internal.h
@@ -1,11 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * fs/kernfs/kernfs-internal.h - kernfs internal header file 3 * fs/kernfs/kernfs-internal.h - kernfs internal header file
3 * 4 *
4 * Copyright (c) 2001-3 Patrick Mochel 5 * Copyright (c) 2001-3 Patrick Mochel
5 * Copyright (c) 2007 SUSE Linux Products GmbH 6 * Copyright (c) 2007 SUSE Linux Products GmbH
6 * Copyright (c) 2007, 2013 Tejun Heo <teheo@suse.de> 7 * Copyright (c) 2007, 2013 Tejun Heo <teheo@suse.de>
7 *
8 * This file is released under the GPLv2.
9 */ 8 */
10 9
11#ifndef __KERNFS_INTERNAL_H 10#ifndef __KERNFS_INTERNAL_H
diff --git a/fs/kernfs/mount.c b/fs/kernfs/mount.c
index 9a4646eecb71..6c12fac2c287 100644
--- a/fs/kernfs/mount.c
+++ b/fs/kernfs/mount.c
@@ -1,11 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/kernfs/mount.c - kernfs mount implementation 3 * fs/kernfs/mount.c - kernfs mount implementation
3 * 4 *
4 * Copyright (c) 2001-3 Patrick Mochel 5 * Copyright (c) 2001-3 Patrick Mochel
5 * Copyright (c) 2007 SUSE Linux Products GmbH 6 * Copyright (c) 2007 SUSE Linux Products GmbH
6 * Copyright (c) 2007, 2013 Tejun Heo <tj@kernel.org> 7 * Copyright (c) 2007, 2013 Tejun Heo <tj@kernel.org>
7 *
8 * This file is released under the GPLv2.
9 */ 8 */
10 9
11#include <linux/fs.h> 10#include <linux/fs.h>
diff --git a/fs/kernfs/symlink.c b/fs/kernfs/symlink.c
index eb46c3a16e2f..5432883d819f 100644
--- a/fs/kernfs/symlink.c
+++ b/fs/kernfs/symlink.c
@@ -1,11 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/kernfs/symlink.c - kernfs symlink implementation 3 * fs/kernfs/symlink.c - kernfs symlink implementation
3 * 4 *
4 * Copyright (c) 2001-3 Patrick Mochel 5 * Copyright (c) 2001-3 Patrick Mochel
5 * Copyright (c) 2007 SUSE Linux Products GmbH 6 * Copyright (c) 2007 SUSE Linux Products GmbH
6 * Copyright (c) 2007, 2013 Tejun Heo <tj@kernel.org> 7 * Copyright (c) 2007, 2013 Tejun Heo <tj@kernel.org>
7 *
8 * This file is released under the GPLv2.
9 */ 8 */
10 9
11#include <linux/fs.h> 10#include <linux/fs.h>
diff --git a/fs/libfs.c b/fs/libfs.c
index 4b59b1816efb..7e52e77692ec 100644
--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/libfs.c 3 * fs/libfs.c
3 * Library for filesystems writers. 4 * Library for filesystems writers.
diff --git a/fs/lockd/clntlock.c b/fs/lockd/clntlock.c
index 5fb4f8910aab..a5bb3f721a9d 100644
--- a/fs/lockd/clntlock.c
+++ b/fs/lockd/clntlock.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/lockd/clntlock.c 3 * linux/fs/lockd/clntlock.c
3 * 4 *
diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c
index d9c32d1a20c0..62f98225abb3 100644
--- a/fs/lockd/clntproc.c
+++ b/fs/lockd/clntproc.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/lockd/clntproc.c 3 * linux/fs/lockd/clntproc.c
3 * 4 *
diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
index 3056f3a0c270..1a639e34847d 100644
--- a/fs/lockd/svc.c
+++ b/fs/lockd/svc.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/lockd/svc.c 3 * linux/fs/lockd/svc.c
3 * 4 *
diff --git a/fs/lockd/svcsubs.c b/fs/lockd/svcsubs.c
index 899360ba3b84..0e610f422406 100644
--- a/fs/lockd/svcsubs.c
+++ b/fs/lockd/svcsubs.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/lockd/svcsubs.c 3 * linux/fs/lockd/svcsubs.c
3 * 4 *
diff --git a/fs/lockd/xdr.c b/fs/lockd/xdr.c
index 9846f7e95282..7147e4aebecc 100644
--- a/fs/lockd/xdr.c
+++ b/fs/lockd/xdr.c
@@ -127,7 +127,7 @@ nlm_decode_lock(__be32 *p, struct nlm_lock *lock)
127 127
128 locks_init_lock(fl); 128 locks_init_lock(fl);
129 fl->fl_owner = current->files; 129 fl->fl_owner = current->files;
130 fl->fl_pid = current->tgid; 130 fl->fl_pid = (pid_t)lock->svid;
131 fl->fl_flags = FL_POSIX; 131 fl->fl_flags = FL_POSIX;
132 fl->fl_type = F_RDLCK; /* as good as anything else */ 132 fl->fl_type = F_RDLCK; /* as good as anything else */
133 start = ntohl(*p++); 133 start = ntohl(*p++);
@@ -269,7 +269,7 @@ nlmsvc_decode_shareargs(struct svc_rqst *rqstp, __be32 *p)
269 memset(lock, 0, sizeof(*lock)); 269 memset(lock, 0, sizeof(*lock));
270 locks_init_lock(&lock->fl); 270 locks_init_lock(&lock->fl);
271 lock->svid = ~(u32) 0; 271 lock->svid = ~(u32) 0;
272 lock->fl.fl_pid = current->tgid; 272 lock->fl.fl_pid = (pid_t)lock->svid;
273 273
274 if (!(p = nlm_decode_cookie(p, &argp->cookie)) 274 if (!(p = nlm_decode_cookie(p, &argp->cookie))
275 || !(p = xdr_decode_string_inplace(p, &lock->caller, 275 || !(p = xdr_decode_string_inplace(p, &lock->caller,
diff --git a/fs/lockd/xdr4.c b/fs/lockd/xdr4.c
index 70154f376695..7ed9edf9aed4 100644
--- a/fs/lockd/xdr4.c
+++ b/fs/lockd/xdr4.c
@@ -119,7 +119,7 @@ nlm4_decode_lock(__be32 *p, struct nlm_lock *lock)
119 119
120 locks_init_lock(fl); 120 locks_init_lock(fl);
121 fl->fl_owner = current->files; 121 fl->fl_owner = current->files;
122 fl->fl_pid = current->tgid; 122 fl->fl_pid = (pid_t)lock->svid;
123 fl->fl_flags = FL_POSIX; 123 fl->fl_flags = FL_POSIX;
124 fl->fl_type = F_RDLCK; /* as good as anything else */ 124 fl->fl_type = F_RDLCK; /* as good as anything else */
125 p = xdr_decode_hyper(p, &start); 125 p = xdr_decode_hyper(p, &start);
@@ -266,7 +266,7 @@ nlm4svc_decode_shareargs(struct svc_rqst *rqstp, __be32 *p)
266 memset(lock, 0, sizeof(*lock)); 266 memset(lock, 0, sizeof(*lock));
267 locks_init_lock(&lock->fl); 267 locks_init_lock(&lock->fl);
268 lock->svid = ~(u32) 0; 268 lock->svid = ~(u32) 0;
269 lock->fl.fl_pid = current->tgid; 269 lock->fl.fl_pid = (pid_t)lock->svid;
270 270
271 if (!(p = nlm4_decode_cookie(p, &argp->cookie)) 271 if (!(p = nlm4_decode_cookie(p, &argp->cookie))
272 || !(p = xdr_decode_string_inplace(p, &lock->caller, 272 || !(p = xdr_decode_string_inplace(p, &lock->caller,
diff --git a/fs/locks.c b/fs/locks.c
index 8af49f89ac2f..ec1e4a5df629 100644
--- a/fs/locks.c
+++ b/fs/locks.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/locks.c 3 * linux/fs/locks.c
3 * 4 *
diff --git a/fs/mbcache.c b/fs/mbcache.c
index 081ccf0caee3..97c54d3a2227 100644
--- a/fs/mbcache.c
+++ b/fs/mbcache.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1#include <linux/spinlock.h> 2#include <linux/spinlock.h>
2#include <linux/slab.h> 3#include <linux/slab.h>
3#include <linux/list.h> 4#include <linux/list.h>
diff --git a/fs/minix/Kconfig b/fs/minix/Kconfig
index bcd53a79156f..de2003974ff0 100644
--- a/fs/minix/Kconfig
+++ b/fs/minix/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config MINIX_FS 2config MINIX_FS
2 tristate "Minix file system support" 3 tristate "Minix file system support"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/minix/Makefile b/fs/minix/Makefile
index 3063015abfd0..a2d3ab58d187 100644
--- a/fs/minix/Makefile
+++ b/fs/minix/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the Linux minix filesystem routines. 3# Makefile for the Linux minix filesystem routines.
3# 4#
diff --git a/fs/minix/inode.c b/fs/minix/inode.c
index 101200761f61..f96073f25432 100644
--- a/fs/minix/inode.c
+++ b/fs/minix/inode.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/minix/inode.c 3 * linux/fs/minix/inode.c
3 * 4 *
diff --git a/fs/namespace.c b/fs/namespace.c
index ffb13f0562b0..7660c2749c96 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -1,8 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/namespace.c 3 * linux/fs/namespace.c
3 * 4 *
4 * (C) Copyright Al Viro 2000, 2001 5 * (C) Copyright Al Viro 2000, 2001
5 * Released under GPL v2.
6 * 6 *
7 * Based on code from fs/super.c, copyright Linus Torvalds and others. 7 * Based on code from fs/super.c, copyright Linus Torvalds and others.
8 * Heavily rewritten. 8 * Heavily rewritten.
@@ -2105,6 +2105,7 @@ static int attach_recursive_mnt(struct mount *source_mnt,
2105 /* Notice when we are propagating across user namespaces */ 2105 /* Notice when we are propagating across user namespaces */
2106 if (child->mnt_parent->mnt_ns->user_ns != user_ns) 2106 if (child->mnt_parent->mnt_ns->user_ns != user_ns)
2107 lock_mnt_tree(child); 2107 lock_mnt_tree(child);
2108 child->mnt.mnt_flags &= ~MNT_LOCKED;
2108 commit_tree(child); 2109 commit_tree(child);
2109 } 2110 }
2110 put_mountpoint(smp); 2111 put_mountpoint(smp);
@@ -3445,6 +3446,7 @@ SYSCALL_DEFINE3(fsmount, int, fs_fd, unsigned int, flags,
3445 ns->root = mnt; 3446 ns->root = mnt;
3446 ns->mounts = 1; 3447 ns->mounts = 1;
3447 list_add(&mnt->mnt_list, &ns->list); 3448 list_add(&mnt->mnt_list, &ns->list);
3449 mntget(newmount.mnt);
3448 3450
3449 /* Attach to an apparent O_PATH fd with a note that we need to unmount 3451 /* Attach to an apparent O_PATH fd with a note that we need to unmount
3450 * it, not just simply put it. 3452 * it, not just simply put it.
diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
index 69d02cf8cf37..295a7a21b774 100644
--- a/fs/nfs/Kconfig
+++ b/fs/nfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config NFS_FS 2config NFS_FS
2 tristate "NFS client support" 3 tristate "NFS client support"
3 depends on INET && FILE_LOCKING && MULTIUSER 4 depends on INET && FILE_LOCKING && MULTIUSER
diff --git a/fs/nfs/blocklayout/Makefile b/fs/nfs/blocklayout/Makefile
index 3ca14c36d08b..7668a1bfb5fa 100644
--- a/fs/nfs/blocklayout/Makefile
+++ b/fs/nfs/blocklayout/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the pNFS block layout driver kernel module 3# Makefile for the pNFS block layout driver kernel module
3# 4#
diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index 3d04cb0b839e..d7e4f0848e28 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* client.c: NFS client sharing and management code 2/* client.c: NFS client sharing and management code
2 * 3 *
3 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12 8
diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c
index 8b78274e3e56..0ff3facf81da 100644
--- a/fs/nfs/delegation.c
+++ b/fs/nfs/delegation.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/nfs/delegation.c 3 * linux/fs/nfs/delegation.c
3 * 4 *
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index 47d445bec8c9..57b6a45576ad 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/nfs/dir.c 3 * linux/fs/nfs/dir.c
3 * 4 *
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c
index 2436bd92bc00..0cb442406168 100644
--- a/fs/nfs/direct.c
+++ b/fs/nfs/direct.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/nfs/direct.c 3 * linux/fs/nfs/direct.c
3 * 4 *
diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index 144e183250c3..95dc90570786 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/nfs/file.c 3 * linux/fs/nfs/file.c
3 * 4 *
diff --git a/fs/nfs/filelayout/Makefile b/fs/nfs/filelayout/Makefile
index 8516cdffb9e9..de056312d374 100644
--- a/fs/nfs/filelayout/Makefile
+++ b/fs/nfs/filelayout/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the pNFS Files Layout Driver kernel module 3# Makefile for the pNFS Files Layout Driver kernel module
3# 4#
diff --git a/fs/nfs/flexfilelayout/Makefile b/fs/nfs/flexfilelayout/Makefile
index 1d2c9f6bbcd4..49f03422b6ad 100644
--- a/fs/nfs/flexfilelayout/Makefile
+++ b/fs/nfs/flexfilelayout/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the pNFS Flexfile Layout Driver kernel module 3# Makefile for the pNFS Flexfile Layout Driver kernel module
3# 4#
diff --git a/fs/nfs/flexfilelayout/flexfilelayout.c b/fs/nfs/flexfilelayout/flexfilelayout.c
index 9920c52bd0cd..bcff3bf5ae09 100644
--- a/fs/nfs/flexfilelayout/flexfilelayout.c
+++ b/fs/nfs/flexfilelayout/flexfilelayout.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Module for pnfs flexfile layout driver. 3 * Module for pnfs flexfile layout driver.
3 * 4 *
diff --git a/fs/nfs/flexfilelayout/flexfilelayoutdev.c b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
index a809989807d6..19f856f45689 100644
--- a/fs/nfs/flexfilelayout/flexfilelayoutdev.c
+++ b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
@@ -18,7 +18,7 @@
18 18
19#define NFSDBG_FACILITY NFSDBG_PNFS_LD 19#define NFSDBG_FACILITY NFSDBG_PNFS_LD
20 20
21static unsigned int dataserver_timeo = NFS_DEF_TCP_RETRANS; 21static unsigned int dataserver_timeo = NFS_DEF_TCP_TIMEO;
22static unsigned int dataserver_retrans; 22static unsigned int dataserver_retrans;
23 23
24static bool ff_layout_has_available_ds(struct pnfs_layout_segment *lseg); 24static bool ff_layout_has_available_ds(struct pnfs_layout_segment *lseg);
diff --git a/fs/nfs/fscache-index.c b/fs/nfs/fscache-index.c
index 666415d13d52..15f271401dcc 100644
--- a/fs/nfs/fscache-index.c
+++ b/fs/nfs/fscache-index.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* NFS FS-Cache index structure definition 2/* NFS FS-Cache index structure definition
2 * 3 *
3 * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/init.h> 8#include <linux/init.h>
diff --git a/fs/nfs/fscache.c b/fs/nfs/fscache.c
index 4dc887813c71..53507aa96b0b 100644
--- a/fs/nfs/fscache.c
+++ b/fs/nfs/fscache.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* NFS filesystem cache interface 2/* NFS filesystem cache interface
2 * 3 *
3 * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/init.h> 8#include <linux/init.h>
diff --git a/fs/nfs/fscache.h b/fs/nfs/fscache.h
index 161ba2edb9d0..25a75e40d91d 100644
--- a/fs/nfs/fscache.h
+++ b/fs/nfs/fscache.h
@@ -1,12 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* NFS filesystem cache interface definitions 2/* NFS filesystem cache interface definitions
2 * 3 *
3 * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */ 6 */
11 7
12#ifndef _NFS_FSCACHE_H 8#ifndef _NFS_FSCACHE_H
diff --git a/fs/nfs/getroot.c b/fs/nfs/getroot.c
index 391dafaf9182..878c4c5982d9 100644
--- a/fs/nfs/getroot.c
+++ b/fs/nfs/getroot.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* getroot.c: get the root dentry for an NFS mount 2/* getroot.c: get the root dentry for an NFS mount
2 * 3 *
3 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/module.h> 8#include <linux/module.h>
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index 3bc2550cfe4e..0b4a1a974411 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/nfs/inode.c 3 * linux/fs/nfs/inode.c
3 * 4 *
diff --git a/fs/nfs/namespace.c b/fs/nfs/namespace.c
index 15f099a24c29..9287eb666322 100644
--- a/fs/nfs/namespace.c
+++ b/fs/nfs/namespace.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/nfs/namespace.c 3 * linux/fs/nfs/namespace.c
3 * 4 *
diff --git a/fs/nfs/nfs2super.c b/fs/nfs/nfs2super.c
index 0a9782c9171a..467f21ee6a35 100644
--- a/fs/nfs/nfs2super.c
+++ b/fs/nfs/nfs2super.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (c) 2012 Netapp, Inc. All rights reserved. 3 * Copyright (c) 2012 Netapp, Inc. All rights reserved.
3 */ 4 */
diff --git a/fs/nfs/nfs3client.c b/fs/nfs/nfs3client.c
index 1afdb0f7473f..fb0c425b5d45 100644
--- a/fs/nfs/nfs3client.c
+++ b/fs/nfs/nfs3client.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1#include <linux/nfs_fs.h> 2#include <linux/nfs_fs.h>
2#include <linux/nfs_mount.h> 3#include <linux/nfs_mount.h>
3#include <linux/sunrpc/addr.h> 4#include <linux/sunrpc/addr.h>
diff --git a/fs/nfs/nfs3super.c b/fs/nfs/nfs3super.c
index 5c4394e4656b..7c5809431e61 100644
--- a/fs/nfs/nfs3super.c
+++ b/fs/nfs/nfs3super.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (c) 2012 Netapp, Inc. All rights reserved. 3 * Copyright (c) 2012 Netapp, Inc. All rights reserved.
3 */ 4 */
diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c
index 3ce246346f02..81b9b6d7927a 100644
--- a/fs/nfs/nfs4client.c
+++ b/fs/nfs/nfs4client.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. 3 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
3 * Written by David Howells (dhowells@redhat.com) 4 * Written by David Howells (dhowells@redhat.com)
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index c29cbef6b53f..6418cb6c079b 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -1256,10 +1256,20 @@ static struct nfs4_opendata *nfs4_opendata_alloc(struct dentry *dentry,
1256 atomic_inc(&sp->so_count); 1256 atomic_inc(&sp->so_count);
1257 p->o_arg.open_flags = flags; 1257 p->o_arg.open_flags = flags;
1258 p->o_arg.fmode = fmode & (FMODE_READ|FMODE_WRITE); 1258 p->o_arg.fmode = fmode & (FMODE_READ|FMODE_WRITE);
1259 p->o_arg.umask = current_umask();
1260 p->o_arg.claim = nfs4_map_atomic_open_claim(server, claim); 1259 p->o_arg.claim = nfs4_map_atomic_open_claim(server, claim);
1261 p->o_arg.share_access = nfs4_map_atomic_open_share(server, 1260 p->o_arg.share_access = nfs4_map_atomic_open_share(server,
1262 fmode, flags); 1261 fmode, flags);
1262 if (flags & O_CREAT) {
1263 p->o_arg.umask = current_umask();
1264 p->o_arg.label = nfs4_label_copy(p->a_label, label);
1265 if (c->sattr != NULL && c->sattr->ia_valid != 0) {
1266 p->o_arg.u.attrs = &p->attrs;
1267 memcpy(&p->attrs, c->sattr, sizeof(p->attrs));
1268
1269 memcpy(p->o_arg.u.verifier.data, c->verf,
1270 sizeof(p->o_arg.u.verifier.data));
1271 }
1272 }
1263 /* don't put an ACCESS op in OPEN compound if O_EXCL, because ACCESS 1273 /* don't put an ACCESS op in OPEN compound if O_EXCL, because ACCESS
1264 * will return permission denied for all bits until close */ 1274 * will return permission denied for all bits until close */
1265 if (!(flags & O_EXCL)) { 1275 if (!(flags & O_EXCL)) {
@@ -1283,7 +1293,6 @@ static struct nfs4_opendata *nfs4_opendata_alloc(struct dentry *dentry,
1283 p->o_arg.server = server; 1293 p->o_arg.server = server;
1284 p->o_arg.bitmask = nfs4_bitmask(server, label); 1294 p->o_arg.bitmask = nfs4_bitmask(server, label);
1285 p->o_arg.open_bitmap = &nfs4_fattr_bitmap[0]; 1295 p->o_arg.open_bitmap = &nfs4_fattr_bitmap[0];
1286 p->o_arg.label = nfs4_label_copy(p->a_label, label);
1287 switch (p->o_arg.claim) { 1296 switch (p->o_arg.claim) {
1288 case NFS4_OPEN_CLAIM_NULL: 1297 case NFS4_OPEN_CLAIM_NULL:
1289 case NFS4_OPEN_CLAIM_DELEGATE_CUR: 1298 case NFS4_OPEN_CLAIM_DELEGATE_CUR:
@@ -1296,13 +1305,6 @@ static struct nfs4_opendata *nfs4_opendata_alloc(struct dentry *dentry,
1296 case NFS4_OPEN_CLAIM_DELEG_PREV_FH: 1305 case NFS4_OPEN_CLAIM_DELEG_PREV_FH:
1297 p->o_arg.fh = NFS_FH(d_inode(dentry)); 1306 p->o_arg.fh = NFS_FH(d_inode(dentry));
1298 } 1307 }
1299 if (c != NULL && c->sattr != NULL && c->sattr->ia_valid != 0) {
1300 p->o_arg.u.attrs = &p->attrs;
1301 memcpy(&p->attrs, c->sattr, sizeof(p->attrs));
1302
1303 memcpy(p->o_arg.u.verifier.data, c->verf,
1304 sizeof(p->o_arg.u.verifier.data));
1305 }
1306 p->c_arg.fh = &p->o_res.fh; 1308 p->c_arg.fh = &p->o_res.fh;
1307 p->c_arg.stateid = &p->o_res.stateid; 1309 p->c_arg.stateid = &p->o_res.stateid;
1308 p->c_arg.seqid = p->o_arg.seqid; 1310 p->c_arg.seqid = p->o_arg.seqid;
@@ -6932,7 +6934,6 @@ struct nfs4_lock_waiter {
6932 struct task_struct *task; 6934 struct task_struct *task;
6933 struct inode *inode; 6935 struct inode *inode;
6934 struct nfs_lowner *owner; 6936 struct nfs_lowner *owner;
6935 bool notified;
6936}; 6937};
6937 6938
6938static int 6939static int
@@ -6954,13 +6955,13 @@ nfs4_wake_lock_waiter(wait_queue_entry_t *wait, unsigned int mode, int flags, vo
6954 /* Make sure it's for the right inode */ 6955 /* Make sure it's for the right inode */
6955 if (nfs_compare_fh(NFS_FH(waiter->inode), &cbnl->cbnl_fh)) 6956 if (nfs_compare_fh(NFS_FH(waiter->inode), &cbnl->cbnl_fh))
6956 return 0; 6957 return 0;
6957
6958 waiter->notified = true;
6959 } 6958 }
6960 6959
6961 /* override "private" so we can use default_wake_function */ 6960 /* override "private" so we can use default_wake_function */
6962 wait->private = waiter->task; 6961 wait->private = waiter->task;
6963 ret = autoremove_wake_function(wait, mode, flags, key); 6962 ret = woken_wake_function(wait, mode, flags, key);
6963 if (ret)
6964 list_del_init(&wait->entry);
6964 wait->private = waiter; 6965 wait->private = waiter;
6965 return ret; 6966 return ret;
6966} 6967}
@@ -6969,7 +6970,6 @@ static int
6969nfs4_retry_setlk(struct nfs4_state *state, int cmd, struct file_lock *request) 6970nfs4_retry_setlk(struct nfs4_state *state, int cmd, struct file_lock *request)
6970{ 6971{
6971 int status = -ERESTARTSYS; 6972 int status = -ERESTARTSYS;
6972 unsigned long flags;
6973 struct nfs4_lock_state *lsp = request->fl_u.nfs4_fl.owner; 6973 struct nfs4_lock_state *lsp = request->fl_u.nfs4_fl.owner;
6974 struct nfs_server *server = NFS_SERVER(state->inode); 6974 struct nfs_server *server = NFS_SERVER(state->inode);
6975 struct nfs_client *clp = server->nfs_client; 6975 struct nfs_client *clp = server->nfs_client;
@@ -6979,8 +6979,7 @@ nfs4_retry_setlk(struct nfs4_state *state, int cmd, struct file_lock *request)
6979 .s_dev = server->s_dev }; 6979 .s_dev = server->s_dev };
6980 struct nfs4_lock_waiter waiter = { .task = current, 6980 struct nfs4_lock_waiter waiter = { .task = current,
6981 .inode = state->inode, 6981 .inode = state->inode,
6982 .owner = &owner, 6982 .owner = &owner};
6983 .notified = false };
6984 wait_queue_entry_t wait; 6983 wait_queue_entry_t wait;
6985 6984
6986 /* Don't bother with waitqueue if we don't expect a callback */ 6985 /* Don't bother with waitqueue if we don't expect a callback */
@@ -6990,27 +6989,22 @@ nfs4_retry_setlk(struct nfs4_state *state, int cmd, struct file_lock *request)
6990 init_wait(&wait); 6989 init_wait(&wait);
6991 wait.private = &waiter; 6990 wait.private = &waiter;
6992 wait.func = nfs4_wake_lock_waiter; 6991 wait.func = nfs4_wake_lock_waiter;
6993 add_wait_queue(q, &wait);
6994 6992
6995 while(!signalled()) { 6993 while(!signalled()) {
6996 waiter.notified = false; 6994 add_wait_queue(q, &wait);
6997 status = nfs4_proc_setlk(state, cmd, request); 6995 status = nfs4_proc_setlk(state, cmd, request);
6998 if ((status != -EAGAIN) || IS_SETLK(cmd)) 6996 if ((status != -EAGAIN) || IS_SETLK(cmd)) {
6997 finish_wait(q, &wait);
6999 break; 6998 break;
7000
7001 status = -ERESTARTSYS;
7002 spin_lock_irqsave(&q->lock, flags);
7003 if (waiter.notified) {
7004 spin_unlock_irqrestore(&q->lock, flags);
7005 continue;
7006 } 6999 }
7007 set_current_state(TASK_INTERRUPTIBLE);
7008 spin_unlock_irqrestore(&q->lock, flags);
7009 7000
7010 freezable_schedule_timeout(NFS4_LOCK_MAXTIMEOUT); 7001 status = -ERESTARTSYS;
7002 freezer_do_not_count();
7003 wait_woken(&wait, TASK_INTERRUPTIBLE, NFS4_LOCK_MAXTIMEOUT);
7004 freezer_count();
7005 finish_wait(q, &wait);
7011 } 7006 }
7012 7007
7013 finish_wait(q, &wait);
7014 return status; 7008 return status;
7015} 7009}
7016#else /* !CONFIG_NFS_V4_1 */ 7010#else /* !CONFIG_NFS_V4_1 */
diff --git a/fs/nfs/nfs4session.c b/fs/nfs/nfs4session.c
index bcb532def9e2..4145a0138907 100644
--- a/fs/nfs/nfs4session.c
+++ b/fs/nfs/nfs4session.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/nfs/nfs4session.c 3 * fs/nfs/nfs4session.c
3 * 4 *
diff --git a/fs/nfs/nfs4super.c b/fs/nfs/nfs4super.c
index 689977e148cb..04c57066a11a 100644
--- a/fs/nfs/nfs4super.c
+++ b/fs/nfs/nfs4super.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (c) 2012 Bryan Schumaker <bjschuma@netapp.com> 3 * Copyright (c) 2012 Bryan Schumaker <bjschuma@netapp.com>
3 */ 4 */
diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c
index 6ec30014a439..6ef5278326b6 100644
--- a/fs/nfs/pagelist.c
+++ b/fs/nfs/pagelist.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/nfs/pagelist.c 3 * linux/fs/nfs/pagelist.c
3 * 4 *
diff --git a/fs/nfs/pnfs_nfs.c b/fs/nfs/pnfs_nfs.c
index f5ad75fafc3c..c0046c348910 100644
--- a/fs/nfs/pnfs_nfs.c
+++ b/fs/nfs/pnfs_nfs.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Common NFS I/O operations for the pnfs file based 3 * Common NFS I/O operations for the pnfs file based
3 * layout drivers. 4 * layout drivers.
diff --git a/fs/nfs/read.c b/fs/nfs/read.c
index c799e540ed1e..c19841c82b6a 100644
--- a/fs/nfs/read.c
+++ b/fs/nfs/read.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/nfs/read.c 3 * linux/fs/nfs/read.c
3 * 4 *
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index d6c687419a81..f88ddac2dcdf 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/nfs/super.c 3 * linux/fs/nfs/super.c
3 * 4 *
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index bc5bb9323412..059a7c38bc4f 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/nfs/write.c 3 * linux/fs/nfs/write.c
3 * 4 *
diff --git a/fs/nfs_common/Makefile b/fs/nfs_common/Makefile
index d153ca3ea577..4bebe834c009 100644
--- a/fs/nfs_common/Makefile
+++ b/fs/nfs_common/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for Linux filesystem routines that are shared by client and server. 3# Makefile for Linux filesystem routines that are shared by client and server.
3# 4#
diff --git a/fs/nfs_common/grace.c b/fs/nfs_common/grace.c
index 5be08f02a76b..b73d9dd37f73 100644
--- a/fs/nfs_common/grace.c
+++ b/fs/nfs_common/grace.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Common code for control of lockd and nfsv4 grace periods. 3 * Common code for control of lockd and nfsv4 grace periods.
3 * 4 *
diff --git a/fs/nfs_common/nfsacl.c b/fs/nfs_common/nfsacl.c
index 538f142935ea..8ceb6425e01a 100644
--- a/fs/nfs_common/nfsacl.c
+++ b/fs/nfs_common/nfsacl.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/nfs_common/nfsacl.c 3 * fs/nfs_common/nfsacl.c
3 * 4 *
diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
index 20b1c17320d5..d25f6bbe7006 100644
--- a/fs/nfsd/Kconfig
+++ b/fs/nfsd/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config NFSD 2config NFSD
2 tristate "NFS server support" 3 tristate "NFS server support"
3 depends on INET 4 depends on INET
diff --git a/fs/nfsd/netns.h b/fs/nfsd/netns.h
index 789abc4dd1d2..7c686a270d60 100644
--- a/fs/nfsd/netns.h
+++ b/fs/nfsd/netns.h
@@ -1,21 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * per net namespace data structures for nfsd 3 * per net namespace data structures for nfsd
3 * 4 *
4 * Copyright (C) 2012, Jeff Layton <jlayton@redhat.com> 5 * Copyright (C) 2012, Jeff Layton <jlayton@redhat.com>
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the Free
8 * Software Foundation; either version 2 of the License, or (at your option)
9 * any later version.
10 *
11 * This program is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 * more details.
15 *
16 * You should have received a copy of the GNU General Public License along with
17 * this program; if not, write to the Free Software Foundation, Inc., 51
18 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 */ 6 */
20 7
21#ifndef __NFSD_NETNS_H__ 8#ifndef __NFSD_NETNS_H__
diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
index 90972e1fd785..62c58cfeb8d8 100644
--- a/fs/nfsd/nfsctl.c
+++ b/fs/nfsd/nfsctl.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Syscall interface to knfsd. 3 * Syscall interface to knfsd.
3 * 4 *
diff --git a/fs/nilfs2/Kconfig b/fs/nilfs2/Kconfig
index 80da8eb27393..254d102e79c9 100644
--- a/fs/nilfs2/Kconfig
+++ b/fs/nilfs2/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config NILFS2_FS 2config NILFS2_FS
2 tristate "NILFS2 file system support" 3 tristate "NILFS2 file system support"
3 select CRC32 4 select CRC32
diff --git a/fs/nls/Kconfig b/fs/nls/Kconfig
index e2ce79ef48c4..5a63303298e6 100644
--- a/fs/nls/Kconfig
+++ b/fs/nls/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Native language support configuration 3# Native language support configuration
3# 4#
diff --git a/fs/no-block.c b/fs/no-block.c
index 6e40e42a43de..481c0f0ab4bd 100644
--- a/fs/no-block.c
+++ b/fs/no-block.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* no-block.c: implementation of routines required for non-BLOCK configuration 2/* no-block.c: implementation of routines required for non-BLOCK configuration
2 * 3 *
3 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/kernel.h> 8#include <linux/kernel.h>
diff --git a/fs/notify/Kconfig b/fs/notify/Kconfig
index 2a24249b30af..c020d26ba223 100644
--- a/fs/notify/Kconfig
+++ b/fs/notify/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config FSNOTIFY 2config FSNOTIFY
2 def_bool n 3 def_bool n
3 select SRCU 4 select SRCU
diff --git a/fs/notify/dnotify/Kconfig b/fs/notify/dnotify/Kconfig
index f9c1ca139d8f..3df7def17eea 100644
--- a/fs/notify/dnotify/Kconfig
+++ b/fs/notify/dnotify/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config DNOTIFY 2config DNOTIFY
2 bool "Dnotify support" 3 bool "Dnotify support"
3 select FSNOTIFY 4 select FSNOTIFY
diff --git a/fs/notify/dnotify/Makefile b/fs/notify/dnotify/Makefile
index f145251dcadb..121b4dd6b1fe 100644
--- a/fs/notify/dnotify/Makefile
+++ b/fs/notify/dnotify/Makefile
@@ -1 +1,2 @@
1# SPDX-License-Identifier: GPL-2.0-only
1obj-$(CONFIG_DNOTIFY) += dnotify.o 2obj-$(CONFIG_DNOTIFY) += dnotify.o
diff --git a/fs/notify/dnotify/dnotify.c b/fs/notify/dnotify/dnotify.c
index 250369d6901d..c03758c91481 100644
--- a/fs/notify/dnotify/dnotify.c
+++ b/fs/notify/dnotify/dnotify.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Directory notifications for Linux. 3 * Directory notifications for Linux.
3 * 4 *
@@ -5,16 +6,6 @@
5 * 6 *
6 * Copyright (C) 2009 Eric Paris <Red Hat Inc> 7 * Copyright (C) 2009 Eric Paris <Red Hat Inc>
7 * dnotify was largly rewritten to use the new fsnotify infrastructure 8 * dnotify was largly rewritten to use the new fsnotify infrastructure
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2, or (at your option) any
12 * later version.
13 *
14 * This program is distributed in the hope that it will be useful, but
15 * WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 */ 9 */
19#include <linux/fs.h> 10#include <linux/fs.h>
20#include <linux/module.h> 11#include <linux/module.h>
diff --git a/fs/notify/fanotify/Kconfig b/fs/notify/fanotify/Kconfig
index 521dc91d2cb5..8b9103f126ad 100644
--- a/fs/notify/fanotify/Kconfig
+++ b/fs/notify/fanotify/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config FANOTIFY 2config FANOTIFY
2 bool "Filesystem wide access notification" 3 bool "Filesystem wide access notification"
3 select FSNOTIFY 4 select FSNOTIFY
diff --git a/fs/notify/fanotify/Makefile b/fs/notify/fanotify/Makefile
index 0999213e7e6e..25ef222915e5 100644
--- a/fs/notify/fanotify/Makefile
+++ b/fs/notify/fanotify/Makefile
@@ -1 +1,2 @@
1# SPDX-License-Identifier: GPL-2.0-only
1obj-$(CONFIG_FANOTIFY) += fanotify.o fanotify_user.o 2obj-$(CONFIG_FANOTIFY) += fanotify.o fanotify_user.o
diff --git a/fs/notify/fanotify/fanotify.c b/fs/notify/fanotify/fanotify.c
index e6fde1a5c072..b428c295d13f 100644
--- a/fs/notify/fanotify/fanotify.c
+++ b/fs/notify/fanotify/fanotify.c
@@ -355,6 +355,10 @@ static __kernel_fsid_t fanotify_get_fsid(struct fsnotify_iter_info *iter_info)
355 /* Mark is just getting destroyed or created? */ 355 /* Mark is just getting destroyed or created? */
356 if (!conn) 356 if (!conn)
357 continue; 357 continue;
358 if (!(conn->flags & FSNOTIFY_CONN_FLAG_HAS_FSID))
359 continue;
360 /* Pairs with smp_wmb() in fsnotify_add_mark_list() */
361 smp_rmb();
358 fsid = conn->fsid; 362 fsid = conn->fsid;
359 if (WARN_ON_ONCE(!fsid.val[0] && !fsid.val[1])) 363 if (WARN_ON_ONCE(!fsid.val[0] && !fsid.val[1]))
360 continue; 364 continue;
diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
index 8c7cbac7183c..4eb2ebfac468 100644
--- a/fs/notify/fsnotify.c
+++ b/fs/notify/fsnotify.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) 2008 Red Hat, Inc., Eric Paris <eparis@redhat.com> 3 * Copyright (C) 2008 Red Hat, Inc., Eric Paris <eparis@redhat.com>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2, or (at your option)
7 * any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; see the file COPYING. If not, write to
16 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17 */ 4 */
18 5
19#include <linux/dcache.h> 6#include <linux/dcache.h>
diff --git a/fs/notify/group.c b/fs/notify/group.c
index c03b83662876..0391190305cc 100644
--- a/fs/notify/group.c
+++ b/fs/notify/group.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) 2008 Red Hat, Inc., Eric Paris <eparis@redhat.com> 3 * Copyright (C) 2008 Red Hat, Inc., Eric Paris <eparis@redhat.com>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2, or (at your option)
7 * any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; see the file COPYING. If not, write to
16 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17 */ 4 */
18 5
19#include <linux/list.h> 6#include <linux/list.h>
diff --git a/fs/notify/inotify/Kconfig b/fs/notify/inotify/Kconfig
index 0161c74e76e2..6736e47d94d8 100644
--- a/fs/notify/inotify/Kconfig
+++ b/fs/notify/inotify/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config INOTIFY_USER 2config INOTIFY_USER
2 bool "Inotify support for userspace" 3 bool "Inotify support for userspace"
3 select FSNOTIFY 4 select FSNOTIFY
diff --git a/fs/notify/inotify/Makefile b/fs/notify/inotify/Makefile
index a380dabe09de..812237eecf3a 100644
--- a/fs/notify/inotify/Makefile
+++ b/fs/notify/inotify/Makefile
@@ -1 +1,2 @@
1# SPDX-License-Identifier: GPL-2.0-only
1obj-$(CONFIG_INOTIFY_USER) += inotify_fsnotify.o inotify_user.o 2obj-$(CONFIG_INOTIFY_USER) += inotify_fsnotify.o inotify_user.o
diff --git a/fs/notify/inotify/inotify_fsnotify.c b/fs/notify/inotify/inotify_fsnotify.c
index 7e8b131029f8..2fda08b2b885 100644
--- a/fs/notify/inotify/inotify_fsnotify.c
+++ b/fs/notify/inotify/inotify_fsnotify.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * fs/inotify_user.c - inotify support for userspace 3 * fs/inotify_user.c - inotify support for userspace
3 * 4 *
@@ -10,16 +11,6 @@
10 * 11 *
11 * Copyright (C) 2009 Eric Paris <Red Hat Inc> 12 * Copyright (C) 2009 Eric Paris <Red Hat Inc>
12 * inotify was largely rewriten to make use of the fsnotify infrastructure 13 * inotify was largely rewriten to make use of the fsnotify infrastructure
13 *
14 * This program is free software; you can redistribute it and/or modify it
15 * under the terms of the GNU General Public License as published by the
16 * Free Software Foundation; either version 2, or (at your option) any
17 * later version.
18 *
19 * This program is distributed in the hope that it will be useful, but
20 * WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 * General Public License for more details.
23 */ 14 */
24 15
25#include <linux/dcache.h> /* d_unlinked */ 16#include <linux/dcache.h> /* d_unlinked */
diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c
index 7b53598c8804..cce8de32779f 100644
--- a/fs/notify/inotify/inotify_user.c
+++ b/fs/notify/inotify/inotify_user.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * fs/inotify_user.c - inotify support for userspace 3 * fs/inotify_user.c - inotify support for userspace
3 * 4 *
@@ -10,16 +11,6 @@
10 * 11 *
11 * Copyright (C) 2009 Eric Paris <Red Hat Inc> 12 * Copyright (C) 2009 Eric Paris <Red Hat Inc>
12 * inotify was largely rewriten to make use of the fsnotify infrastructure 13 * inotify was largely rewriten to make use of the fsnotify infrastructure
13 *
14 * This program is free software; you can redistribute it and/or modify it
15 * under the terms of the GNU General Public License as published by the
16 * Free Software Foundation; either version 2, or (at your option) any
17 * later version.
18 *
19 * This program is distributed in the hope that it will be useful, but
20 * WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 * General Public License for more details.
23 */ 14 */
24 15
25#include <linux/file.h> 16#include <linux/file.h>
diff --git a/fs/notify/mark.c b/fs/notify/mark.c
index b251105f646f..99ddd126f6f0 100644
--- a/fs/notify/mark.c
+++ b/fs/notify/mark.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) 2008 Red Hat, Inc., Eric Paris <eparis@redhat.com> 3 * Copyright (C) 2008 Red Hat, Inc., Eric Paris <eparis@redhat.com>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2, or (at your option)
7 * any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; see the file COPYING. If not, write to
16 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17 */ 4 */
18 5
19/* 6/*
@@ -495,10 +482,13 @@ static int fsnotify_attach_connector_to_object(fsnotify_connp_t *connp,
495 conn->type = type; 482 conn->type = type;
496 conn->obj = connp; 483 conn->obj = connp;
497 /* Cache fsid of filesystem containing the object */ 484 /* Cache fsid of filesystem containing the object */
498 if (fsid) 485 if (fsid) {
499 conn->fsid = *fsid; 486 conn->fsid = *fsid;
500 else 487 conn->flags = FSNOTIFY_CONN_FLAG_HAS_FSID;
488 } else {
501 conn->fsid.val[0] = conn->fsid.val[1] = 0; 489 conn->fsid.val[0] = conn->fsid.val[1] = 0;
490 conn->flags = 0;
491 }
502 if (conn->type == FSNOTIFY_OBJ_TYPE_INODE) 492 if (conn->type == FSNOTIFY_OBJ_TYPE_INODE)
503 inode = igrab(fsnotify_conn_inode(conn)); 493 inode = igrab(fsnotify_conn_inode(conn));
504 /* 494 /*
@@ -573,7 +563,12 @@ restart:
573 if (err) 563 if (err)
574 return err; 564 return err;
575 goto restart; 565 goto restart;
576 } else if (fsid && (conn->fsid.val[0] || conn->fsid.val[1]) && 566 } else if (fsid && !(conn->flags & FSNOTIFY_CONN_FLAG_HAS_FSID)) {
567 conn->fsid = *fsid;
568 /* Pairs with smp_rmb() in fanotify_get_fsid() */
569 smp_wmb();
570 conn->flags |= FSNOTIFY_CONN_FLAG_HAS_FSID;
571 } else if (fsid && (conn->flags & FSNOTIFY_CONN_FLAG_HAS_FSID) &&
577 (fsid->val[0] != conn->fsid.val[0] || 572 (fsid->val[0] != conn->fsid.val[0] ||
578 fsid->val[1] != conn->fsid.val[1])) { 573 fsid->val[1] != conn->fsid.val[1])) {
579 /* 574 /*
diff --git a/fs/notify/notification.c b/fs/notify/notification.c
index 5f3a54d444b5..75d79d6d3ef0 100644
--- a/fs/notify/notification.c
+++ b/fs/notify/notification.c
@@ -1,19 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Copyright (C) 2008 Red Hat, Inc., Eric Paris <eparis@redhat.com> 3 * Copyright (C) 2008 Red Hat, Inc., Eric Paris <eparis@redhat.com>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2, or (at your option)
7 * any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; see the file COPYING. If not, write to
16 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17 */ 4 */
18 5
19/* 6/*
diff --git a/fs/ntfs/Kconfig b/fs/ntfs/Kconfig
index f5a868cc9152..de9fb5cff226 100644
--- a/fs/ntfs/Kconfig
+++ b/fs/ntfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config NTFS_FS 2config NTFS_FS
2 tristate "NTFS file system support" 3 tristate "NTFS file system support"
3 select NLS 4 select NLS
diff --git a/fs/ntfs/aops.c b/fs/ntfs/aops.c
index 8946130c87ad..7202a1e39d70 100644
--- a/fs/ntfs/aops.c
+++ b/fs/ntfs/aops.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * aops.c - NTFS kernel address space operations and page cache handling. 3 * aops.c - NTFS kernel address space operations and page cache handling.
3 * 4 *
4 * Copyright (c) 2001-2014 Anton Altaparmakov and Tuxera Inc. 5 * Copyright (c) 2001-2014 Anton Altaparmakov and Tuxera Inc.
5 * Copyright (c) 2002 Richard Russon 6 * Copyright (c) 2002 Richard Russon
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#include <linux/errno.h> 9#include <linux/errno.h>
diff --git a/fs/ntfs/aops.h b/fs/ntfs/aops.h
index 820d6eabf60f..f0962d46bd67 100644
--- a/fs/ntfs/aops.h
+++ b/fs/ntfs/aops.h
@@ -1,24 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/** 2/**
2 * aops.h - Defines for NTFS kernel address space operations and page cache 3 * aops.h - Defines for NTFS kernel address space operations and page cache
3 * handling. Part of the Linux-NTFS project. 4 * handling. Part of the Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2001-2004 Anton Altaparmakov 6 * Copyright (c) 2001-2004 Anton Altaparmakov
6 * Copyright (c) 2002 Richard Russon 7 * Copyright (c) 2002 Richard Russon
7 *
8 * This program/include file is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as published
10 * by the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program/include file is distributed in the hope that it will be
14 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program (in the main directory of the Linux-NTFS
20 * distribution in the file COPYING); if not, write to the Free Software
21 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */ 8 */
23 9
24#ifndef _LINUX_NTFS_AOPS_H 10#ifndef _LINUX_NTFS_AOPS_H
diff --git a/fs/ntfs/attrib.c b/fs/ntfs/attrib.c
index 44a39a099b54..d563abc3e136 100644
--- a/fs/ntfs/attrib.c
+++ b/fs/ntfs/attrib.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * attrib.c - NTFS attribute operations. Part of the Linux-NTFS project. 3 * attrib.c - NTFS attribute operations. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2001-2012 Anton Altaparmakov and Tuxera Inc. 5 * Copyright (c) 2001-2012 Anton Altaparmakov and Tuxera Inc.
5 * Copyright (c) 2002 Richard Russon 6 * Copyright (c) 2002 Richard Russon
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#include <linux/buffer_head.h> 9#include <linux/buffer_head.h>
diff --git a/fs/ntfs/attrib.h b/fs/ntfs/attrib.h
index 3c8b74c99b80..fe0890d3d072 100644
--- a/fs/ntfs/attrib.h
+++ b/fs/ntfs/attrib.h
@@ -1,24 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * attrib.h - Defines for attribute handling in NTFS Linux kernel driver. 3 * attrib.h - Defines for attribute handling in NTFS Linux kernel driver.
3 * Part of the Linux-NTFS project. 4 * Part of the Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2001-2005 Anton Altaparmakov 6 * Copyright (c) 2001-2005 Anton Altaparmakov
6 * Copyright (c) 2002 Richard Russon 7 * Copyright (c) 2002 Richard Russon
7 *
8 * This program/include file is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as published
10 * by the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program/include file is distributed in the hope that it will be
14 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program (in the main directory of the Linux-NTFS
20 * distribution in the file COPYING); if not, write to the Free Software
21 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */ 8 */
23 9
24#ifndef _LINUX_NTFS_ATTRIB_H 10#ifndef _LINUX_NTFS_ATTRIB_H
diff --git a/fs/ntfs/bitmap.c b/fs/ntfs/bitmap.c
index ec130c588d2b..0675b2400873 100644
--- a/fs/ntfs/bitmap.c
+++ b/fs/ntfs/bitmap.c
@@ -1,22 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * bitmap.c - NTFS kernel bitmap handling. Part of the Linux-NTFS project. 3 * bitmap.c - NTFS kernel bitmap handling. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2004-2005 Anton Altaparmakov 5 * Copyright (c) 2004-2005 Anton Altaparmakov
5 *
6 * This program/include file is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as published
8 * by the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program/include file is distributed in the hope that it will be
12 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program (in the main directory of the Linux-NTFS
18 * distribution in the file COPYING); if not, write to the Free Software
19 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 6 */
21 7
22#ifdef NTFS_RW 8#ifdef NTFS_RW
diff --git a/fs/ntfs/bitmap.h b/fs/ntfs/bitmap.h
index 72c9ad8be70d..9dd2224ca9c4 100644
--- a/fs/ntfs/bitmap.h
+++ b/fs/ntfs/bitmap.h
@@ -1,23 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * bitmap.h - Defines for NTFS kernel bitmap handling. Part of the Linux-NTFS 3 * bitmap.h - Defines for NTFS kernel bitmap handling. Part of the Linux-NTFS
3 * project. 4 * project.
4 * 5 *
5 * Copyright (c) 2004 Anton Altaparmakov 6 * Copyright (c) 2004 Anton Altaparmakov
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#ifndef _LINUX_NTFS_BITMAP_H 9#ifndef _LINUX_NTFS_BITMAP_H
diff --git a/fs/ntfs/collate.c b/fs/ntfs/collate.c
index 4a28ab3898ef..3ab6ec96abfe 100644
--- a/fs/ntfs/collate.c
+++ b/fs/ntfs/collate.c
@@ -1,22 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * collate.c - NTFS kernel collation handling. Part of the Linux-NTFS project. 3 * collate.c - NTFS kernel collation handling. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2004 Anton Altaparmakov 5 * Copyright (c) 2004 Anton Altaparmakov
5 *
6 * This program/include file is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as published
8 * by the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program/include file is distributed in the hope that it will be
12 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program (in the main directory of the Linux-NTFS
18 * distribution in the file COPYING); if not, write to the Free Software
19 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 6 */
21 7
22#include "collate.h" 8#include "collate.h"
diff --git a/fs/ntfs/collate.h b/fs/ntfs/collate.h
index aba83347e5fe..f2255619b4f4 100644
--- a/fs/ntfs/collate.h
+++ b/fs/ntfs/collate.h
@@ -1,23 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * collate.h - Defines for NTFS kernel collation handling. Part of the 3 * collate.h - Defines for NTFS kernel collation handling. Part of the
3 * Linux-NTFS project. 4 * Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2004 Anton Altaparmakov 6 * Copyright (c) 2004 Anton Altaparmakov
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#ifndef _LINUX_NTFS_COLLATE_H 9#ifndef _LINUX_NTFS_COLLATE_H
diff --git a/fs/ntfs/compress.c b/fs/ntfs/compress.c
index df7c32b5fac7..d2f9d6a0ee32 100644
--- a/fs/ntfs/compress.c
+++ b/fs/ntfs/compress.c
@@ -1,24 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * compress.c - NTFS kernel compressed attributes handling. 3 * compress.c - NTFS kernel compressed attributes handling.
3 * Part of the Linux-NTFS project. 4 * Part of the Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2001-2004 Anton Altaparmakov 6 * Copyright (c) 2001-2004 Anton Altaparmakov
6 * Copyright (c) 2002 Richard Russon 7 * Copyright (c) 2002 Richard Russon
7 *
8 * This program/include file is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as published
10 * by the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program/include file is distributed in the hope that it will be
14 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program (in the main directory of the Linux-NTFS
20 * distribution in the file COPYING); if not, write to the Free Software
21 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */ 8 */
23 9
24#include <linux/fs.h> 10#include <linux/fs.h>
diff --git a/fs/ntfs/debug.c b/fs/ntfs/debug.c
index 825a54e8f490..a3c1c5656f8f 100644
--- a/fs/ntfs/debug.c
+++ b/fs/ntfs/debug.c
@@ -1,22 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * debug.c - NTFS kernel debug support. Part of the Linux-NTFS project. 3 * debug.c - NTFS kernel debug support. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2001-2004 Anton Altaparmakov 5 * Copyright (c) 2001-2004 Anton Altaparmakov
5 *
6 * This program/include file is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as published
8 * by the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program/include file is distributed in the hope that it will be
12 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program (in the main directory of the Linux-NTFS
18 * distribution in the file COPYING); if not, write to the Free Software
19 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 6 */
21#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 7#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
22#include "debug.h" 8#include "debug.h"
diff --git a/fs/ntfs/debug.h b/fs/ntfs/debug.h
index 61bf091e32a8..6fdef388f129 100644
--- a/fs/ntfs/debug.h
+++ b/fs/ntfs/debug.h
@@ -1,22 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * debug.h - NTFS kernel debug support. Part of the Linux-NTFS project. 3 * debug.h - NTFS kernel debug support. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2001-2004 Anton Altaparmakov 5 * Copyright (c) 2001-2004 Anton Altaparmakov
5 *
6 * This program/include file is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as published
8 * by the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program/include file is distributed in the hope that it will be
12 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program (in the main directory of the Linux-NTFS
18 * distribution in the file COPYING); if not, write to the Free Software
19 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 6 */
21 7
22#ifndef _LINUX_NTFS_DEBUG_H 8#ifndef _LINUX_NTFS_DEBUG_H
diff --git a/fs/ntfs/dir.c b/fs/ntfs/dir.c
index 1a24be9e8405..3c4811469ae8 100644
--- a/fs/ntfs/dir.c
+++ b/fs/ntfs/dir.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * dir.c - NTFS kernel directory operations. Part of the Linux-NTFS project. 3 * dir.c - NTFS kernel directory operations. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2001-2007 Anton Altaparmakov 5 * Copyright (c) 2001-2007 Anton Altaparmakov
5 * Copyright (c) 2002 Richard Russon 6 * Copyright (c) 2002 Richard Russon
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#include <linux/buffer_head.h> 9#include <linux/buffer_head.h>
diff --git a/fs/ntfs/dir.h b/fs/ntfs/dir.h
index aea7582d561f..0e326753df40 100644
--- a/fs/ntfs/dir.h
+++ b/fs/ntfs/dir.h
@@ -1,23 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * dir.h - Defines for directory handling in NTFS Linux kernel driver. Part of 3 * dir.h - Defines for directory handling in NTFS Linux kernel driver. Part of
3 * the Linux-NTFS project. 4 * the Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2002-2004 Anton Altaparmakov 6 * Copyright (c) 2002-2004 Anton Altaparmakov
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#ifndef _LINUX_NTFS_DIR_H 9#ifndef _LINUX_NTFS_DIR_H
diff --git a/fs/ntfs/endian.h b/fs/ntfs/endian.h
index 927b5bf04b4f..f30c139bf9ae 100644
--- a/fs/ntfs/endian.h
+++ b/fs/ntfs/endian.h
@@ -1,23 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * endian.h - Defines for endianness handling in NTFS Linux kernel driver. 3 * endian.h - Defines for endianness handling in NTFS Linux kernel driver.
3 * Part of the Linux-NTFS project. 4 * Part of the Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2001-2004 Anton Altaparmakov 6 * Copyright (c) 2001-2004 Anton Altaparmakov
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#ifndef _LINUX_NTFS_ENDIAN_H 9#ifndef _LINUX_NTFS_ENDIAN_H
diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c
index 331910fa8442..f42967b738eb 100644
--- a/fs/ntfs/file.c
+++ b/fs/ntfs/file.c
@@ -1,22 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * file.c - NTFS kernel file operations. Part of the Linux-NTFS project. 3 * file.c - NTFS kernel file operations. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2001-2015 Anton Altaparmakov and Tuxera Inc. 5 * Copyright (c) 2001-2015 Anton Altaparmakov and Tuxera Inc.
5 *
6 * This program/include file is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as published
8 * by the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program/include file is distributed in the hope that it will be
12 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program (in the main directory of the Linux-NTFS
18 * distribution in the file COPYING); if not, write to the Free Software
19 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 6 */
21 7
22#include <linux/backing-dev.h> 8#include <linux/backing-dev.h>
diff --git a/fs/ntfs/index.c b/fs/ntfs/index.c
index 0d645f357930..d46c2c03a032 100644
--- a/fs/ntfs/index.c
+++ b/fs/ntfs/index.c
@@ -1,22 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * index.c - NTFS kernel index handling. Part of the Linux-NTFS project. 3 * index.c - NTFS kernel index handling. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2004-2005 Anton Altaparmakov 5 * Copyright (c) 2004-2005 Anton Altaparmakov
5 *
6 * This program/include file is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as published
8 * by the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program/include file is distributed in the hope that it will be
12 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program (in the main directory of the Linux-NTFS
18 * distribution in the file COPYING); if not, write to the Free Software
19 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 6 */
21 7
22#include <linux/slab.h> 8#include <linux/slab.h>
diff --git a/fs/ntfs/index.h b/fs/ntfs/index.h
index 8745469c3989..bb3c3ae55138 100644
--- a/fs/ntfs/index.h
+++ b/fs/ntfs/index.h
@@ -1,23 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * index.h - Defines for NTFS kernel index handling. Part of the Linux-NTFS 3 * index.h - Defines for NTFS kernel index handling. Part of the Linux-NTFS
3 * project. 4 * project.
4 * 5 *
5 * Copyright (c) 2004 Anton Altaparmakov 6 * Copyright (c) 2004 Anton Altaparmakov
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#ifndef _LINUX_NTFS_INDEX_H 9#ifndef _LINUX_NTFS_INDEX_H
diff --git a/fs/ntfs/inode.c b/fs/ntfs/inode.c
index fb1a2b49a5da..8baa34baf548 100644
--- a/fs/ntfs/inode.c
+++ b/fs/ntfs/inode.c
@@ -1,22 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * inode.c - NTFS kernel inode handling. 3 * inode.c - NTFS kernel inode handling.
3 * 4 *
4 * Copyright (c) 2001-2014 Anton Altaparmakov and Tuxera Inc. 5 * Copyright (c) 2001-2014 Anton Altaparmakov and Tuxera Inc.
5 *
6 * This program/include file is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as published
8 * by the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program/include file is distributed in the hope that it will be
12 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program (in the main directory of the Linux-NTFS
18 * distribution in the file COPYING); if not, write to the Free Software
19 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 6 */
21 7
22#include <linux/buffer_head.h> 8#include <linux/buffer_head.h>
diff --git a/fs/ntfs/inode.h b/fs/ntfs/inode.h
index 58c8fd2948d3..98e670fbdd31 100644
--- a/fs/ntfs/inode.h
+++ b/fs/ntfs/inode.h
@@ -1,24 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * inode.h - Defines for inode structures NTFS Linux kernel driver. Part of 3 * inode.h - Defines for inode structures NTFS Linux kernel driver. Part of
3 * the Linux-NTFS project. 4 * the Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2001-2007 Anton Altaparmakov 6 * Copyright (c) 2001-2007 Anton Altaparmakov
6 * Copyright (c) 2002 Richard Russon 7 * Copyright (c) 2002 Richard Russon
7 *
8 * This program/include file is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as published
10 * by the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program/include file is distributed in the hope that it will be
14 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program (in the main directory of the Linux-NTFS
20 * distribution in the file COPYING); if not, write to the Free Software
21 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */ 8 */
23 9
24#ifndef _LINUX_NTFS_INODE_H 10#ifndef _LINUX_NTFS_INODE_H
diff --git a/fs/ntfs/layout.h b/fs/ntfs/layout.h
index 809c0e6d8e09..85422761ff43 100644
--- a/fs/ntfs/layout.h
+++ b/fs/ntfs/layout.h
@@ -1,24 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * layout.h - All NTFS associated on-disk structures. Part of the Linux-NTFS 3 * layout.h - All NTFS associated on-disk structures. Part of the Linux-NTFS
3 * project. 4 * project.
4 * 5 *
5 * Copyright (c) 2001-2005 Anton Altaparmakov 6 * Copyright (c) 2001-2005 Anton Altaparmakov
6 * Copyright (c) 2002 Richard Russon 7 * Copyright (c) 2002 Richard Russon
7 *
8 * This program/include file is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as published
10 * by the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program/include file is distributed in the hope that it will be
14 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program (in the main directory of the Linux-NTFS
20 * distribution in the file COPYING); if not, write to the Free Software
21 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */ 8 */
23 9
24#ifndef _LINUX_NTFS_LAYOUT_H 10#ifndef _LINUX_NTFS_LAYOUT_H
diff --git a/fs/ntfs/lcnalloc.c b/fs/ntfs/lcnalloc.c
index 27a24a42f712..eda9972e6159 100644
--- a/fs/ntfs/lcnalloc.c
+++ b/fs/ntfs/lcnalloc.c
@@ -1,22 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * lcnalloc.c - Cluster (de)allocation code. Part of the Linux-NTFS project. 3 * lcnalloc.c - Cluster (de)allocation code. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2004-2005 Anton Altaparmakov 5 * Copyright (c) 2004-2005 Anton Altaparmakov
5 *
6 * This program/include file is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as published
8 * by the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program/include file is distributed in the hope that it will be
12 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program (in the main directory of the Linux-NTFS
18 * distribution in the file COPYING); if not, write to the Free Software
19 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 6 */
21 7
22#ifdef NTFS_RW 8#ifdef NTFS_RW
diff --git a/fs/ntfs/lcnalloc.h b/fs/ntfs/lcnalloc.h
index 2adb04316941..1589a6d8434b 100644
--- a/fs/ntfs/lcnalloc.h
+++ b/fs/ntfs/lcnalloc.h
@@ -1,23 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * lcnalloc.h - Exports for NTFS kernel cluster (de)allocation. Part of the 3 * lcnalloc.h - Exports for NTFS kernel cluster (de)allocation. Part of the
3 * Linux-NTFS project. 4 * Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2004-2005 Anton Altaparmakov 6 * Copyright (c) 2004-2005 Anton Altaparmakov
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#ifndef _LINUX_NTFS_LCNALLOC_H 9#ifndef _LINUX_NTFS_LCNALLOC_H
diff --git a/fs/ntfs/logfile.c b/fs/ntfs/logfile.c
index 353379ff6057..a0c40f1be7ac 100644
--- a/fs/ntfs/logfile.c
+++ b/fs/ntfs/logfile.c
@@ -1,22 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * logfile.c - NTFS kernel journal handling. Part of the Linux-NTFS project. 3 * logfile.c - NTFS kernel journal handling. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2002-2007 Anton Altaparmakov 5 * Copyright (c) 2002-2007 Anton Altaparmakov
5 *
6 * This program/include file is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as published
8 * by the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program/include file is distributed in the hope that it will be
12 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program (in the main directory of the Linux-NTFS
18 * distribution in the file COPYING); if not, write to the Free Software
19 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 6 */
21 7
22#ifdef NTFS_RW 8#ifdef NTFS_RW
diff --git a/fs/ntfs/logfile.h b/fs/ntfs/logfile.h
index aa2b6ac3f0a4..429d4909cc72 100644
--- a/fs/ntfs/logfile.h
+++ b/fs/ntfs/logfile.h
@@ -1,23 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * logfile.h - Defines for NTFS kernel journal ($LogFile) handling. Part of 3 * logfile.h - Defines for NTFS kernel journal ($LogFile) handling. Part of
3 * the Linux-NTFS project. 4 * the Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2000-2005 Anton Altaparmakov 6 * Copyright (c) 2000-2005 Anton Altaparmakov
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#ifndef _LINUX_NTFS_LOGFILE_H 9#ifndef _LINUX_NTFS_LOGFILE_H
diff --git a/fs/ntfs/malloc.h b/fs/ntfs/malloc.h
index 5becc8acc8f4..842b0bfc3ac9 100644
--- a/fs/ntfs/malloc.h
+++ b/fs/ntfs/malloc.h
@@ -1,22 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * malloc.h - NTFS kernel memory handling. Part of the Linux-NTFS project. 3 * malloc.h - NTFS kernel memory handling. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2001-2005 Anton Altaparmakov 5 * Copyright (c) 2001-2005 Anton Altaparmakov
5 *
6 * This program/include file is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as published
8 * by the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program/include file is distributed in the hope that it will be
12 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program (in the main directory of the Linux-NTFS
18 * distribution in the file COPYING); if not, write to the Free Software
19 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 6 */
21 7
22#ifndef _LINUX_NTFS_MALLOC_H 8#ifndef _LINUX_NTFS_MALLOC_H
diff --git a/fs/ntfs/mft.c b/fs/ntfs/mft.c
index fb14d17666c8..20c841a906f2 100644
--- a/fs/ntfs/mft.c
+++ b/fs/ntfs/mft.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * mft.c - NTFS kernel mft record operations. Part of the Linux-NTFS project. 3 * mft.c - NTFS kernel mft record operations. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2001-2012 Anton Altaparmakov and Tuxera Inc. 5 * Copyright (c) 2001-2012 Anton Altaparmakov and Tuxera Inc.
5 * Copyright (c) 2002 Richard Russon 6 * Copyright (c) 2002 Richard Russon
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#include <linux/buffer_head.h> 9#include <linux/buffer_head.h>
diff --git a/fs/ntfs/mft.h b/fs/ntfs/mft.h
index b52bf87b99de..17bfefc30271 100644
--- a/fs/ntfs/mft.h
+++ b/fs/ntfs/mft.h
@@ -1,23 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * mft.h - Defines for mft record handling in NTFS Linux kernel driver. 3 * mft.h - Defines for mft record handling in NTFS Linux kernel driver.
3 * Part of the Linux-NTFS project. 4 * Part of the Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2001-2004 Anton Altaparmakov 6 * Copyright (c) 2001-2004 Anton Altaparmakov
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#ifndef _LINUX_NTFS_MFT_H 9#ifndef _LINUX_NTFS_MFT_H
diff --git a/fs/ntfs/mst.c b/fs/ntfs/mst.c
index 5a858d839b65..16b3c884abfc 100644
--- a/fs/ntfs/mst.c
+++ b/fs/ntfs/mst.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * mst.c - NTFS multi sector transfer protection handling code. Part of the 3 * mst.c - NTFS multi sector transfer protection handling code. Part of the
3 * Linux-NTFS project. 4 * Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2001-2004 Anton Altaparmakov 6 * Copyright (c) 2001-2004 Anton Altaparmakov
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#include "ntfs.h" 9#include "ntfs.h"
diff --git a/fs/ntfs/namei.c b/fs/ntfs/namei.c
index 3986c7a1f6a8..2d3cc9e3395d 100644
--- a/fs/ntfs/namei.c
+++ b/fs/ntfs/namei.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * namei.c - NTFS kernel directory inode operations. Part of the Linux-NTFS 3 * namei.c - NTFS kernel directory inode operations. Part of the Linux-NTFS
3 * project. 4 * project.
4 * 5 *
5 * Copyright (c) 2001-2006 Anton Altaparmakov 6 * Copyright (c) 2001-2006 Anton Altaparmakov
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#include <linux/dcache.h> 9#include <linux/dcache.h>
diff --git a/fs/ntfs/ntfs.h b/fs/ntfs/ntfs.h
index 12de47b96ca9..e81376ea9152 100644
--- a/fs/ntfs/ntfs.h
+++ b/fs/ntfs/ntfs.h
@@ -1,23 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * ntfs.h - Defines for NTFS Linux kernel driver. 3 * ntfs.h - Defines for NTFS Linux kernel driver.
3 * 4 *
4 * Copyright (c) 2001-2014 Anton Altaparmakov and Tuxera Inc. 5 * Copyright (c) 2001-2014 Anton Altaparmakov and Tuxera Inc.
5 * Copyright (C) 2002 Richard Russon 6 * Copyright (C) 2002 Richard Russon
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#ifndef _LINUX_NTFS_H 9#ifndef _LINUX_NTFS_H
diff --git a/fs/ntfs/quota.c b/fs/ntfs/quota.c
index 9793e68ba1dd..9160480222fd 100644
--- a/fs/ntfs/quota.c
+++ b/fs/ntfs/quota.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * quota.c - NTFS kernel quota ($Quota) handling. Part of the Linux-NTFS 3 * quota.c - NTFS kernel quota ($Quota) handling. Part of the Linux-NTFS
3 * project. 4 * project.
4 * 5 *
5 * Copyright (c) 2004 Anton Altaparmakov 6 * Copyright (c) 2004 Anton Altaparmakov
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#ifdef NTFS_RW 9#ifdef NTFS_RW
diff --git a/fs/ntfs/quota.h b/fs/ntfs/quota.h
index 4cbe5594c0b0..fe3132a3d6d2 100644
--- a/fs/ntfs/quota.h
+++ b/fs/ntfs/quota.h
@@ -1,23 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * quota.h - Defines for NTFS kernel quota ($Quota) handling. Part of the 3 * quota.h - Defines for NTFS kernel quota ($Quota) handling. Part of the
3 * Linux-NTFS project. 4 * Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2004 Anton Altaparmakov 6 * Copyright (c) 2004 Anton Altaparmakov
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#ifndef _LINUX_NTFS_QUOTA_H 9#ifndef _LINUX_NTFS_QUOTA_H
diff --git a/fs/ntfs/runlist.c b/fs/ntfs/runlist.c
index eac7d6788a10..508744a93180 100644
--- a/fs/ntfs/runlist.c
+++ b/fs/ntfs/runlist.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/** 2/**
2 * runlist.c - NTFS runlist handling code. Part of the Linux-NTFS project. 3 * runlist.c - NTFS runlist handling code. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2001-2007 Anton Altaparmakov 5 * Copyright (c) 2001-2007 Anton Altaparmakov
5 * Copyright (c) 2002-2005 Richard Russon 6 * Copyright (c) 2002-2005 Richard Russon
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#include "debug.h" 9#include "debug.h"
diff --git a/fs/ntfs/runlist.h b/fs/ntfs/runlist.h
index 47728fbb610b..38de0a375f59 100644
--- a/fs/ntfs/runlist.h
+++ b/fs/ntfs/runlist.h
@@ -1,24 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * runlist.h - Defines for runlist handling in NTFS Linux kernel driver. 3 * runlist.h - Defines for runlist handling in NTFS Linux kernel driver.
3 * Part of the Linux-NTFS project. 4 * Part of the Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2001-2005 Anton Altaparmakov 6 * Copyright (c) 2001-2005 Anton Altaparmakov
6 * Copyright (c) 2002 Richard Russon 7 * Copyright (c) 2002 Richard Russon
7 *
8 * This program/include file is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as published
10 * by the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program/include file is distributed in the hope that it will be
14 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program (in the main directory of the Linux-NTFS
20 * distribution in the file COPYING); if not, write to the Free Software
21 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */ 8 */
23 9
24#ifndef _LINUX_NTFS_RUNLIST_H 10#ifndef _LINUX_NTFS_RUNLIST_H
diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
index 887ea8b3b000..29621d40f448 100644
--- a/fs/ntfs/super.c
+++ b/fs/ntfs/super.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * super.c - NTFS kernel super block handling. Part of the Linux-NTFS project. 3 * super.c - NTFS kernel super block handling. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2001-2012 Anton Altaparmakov and Tuxera Inc. 5 * Copyright (c) 2001-2012 Anton Altaparmakov and Tuxera Inc.
5 * Copyright (c) 2001,2002 Richard Russon 6 * Copyright (c) 2001,2002 Richard Russon
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 8#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
23 9
diff --git a/fs/ntfs/sysctl.c b/fs/ntfs/sysctl.c
index a503156ec15f..a030d00af90c 100644
--- a/fs/ntfs/sysctl.c
+++ b/fs/ntfs/sysctl.c
@@ -1,24 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * sysctl.c - Code for sysctl handling in NTFS Linux kernel driver. Part of 3 * sysctl.c - Code for sysctl handling in NTFS Linux kernel driver. Part of
3 * the Linux-NTFS project. Adapted from the old NTFS driver, 4 * the Linux-NTFS project. Adapted from the old NTFS driver,
4 * Copyright (C) 1997 Martin von Löwis, Régis Duchesne 5 * Copyright (C) 1997 Martin von Löwis, Régis Duchesne
5 * 6 *
6 * Copyright (c) 2002-2005 Anton Altaparmakov 7 * Copyright (c) 2002-2005 Anton Altaparmakov
7 *
8 * This program/include file is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as published
10 * by the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program/include file is distributed in the hope that it will be
14 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program (in the main directory of the Linux-NTFS
20 * distribution in the file COPYING); if not, write to the Free Software
21 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */ 8 */
23 9
24#ifdef DEBUG 10#ifdef DEBUG
diff --git a/fs/ntfs/sysctl.h b/fs/ntfs/sysctl.h
index d4f8ce920d95..96bb2299d2d5 100644
--- a/fs/ntfs/sysctl.h
+++ b/fs/ntfs/sysctl.h
@@ -1,24 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * sysctl.h - Defines for sysctl handling in NTFS Linux kernel driver. Part of 3 * sysctl.h - Defines for sysctl handling in NTFS Linux kernel driver. Part of
3 * the Linux-NTFS project. Adapted from the old NTFS driver, 4 * the Linux-NTFS project. Adapted from the old NTFS driver,
4 * Copyright (C) 1997 Martin von Löwis, Régis Duchesne 5 * Copyright (C) 1997 Martin von Löwis, Régis Duchesne
5 * 6 *
6 * Copyright (c) 2002-2004 Anton Altaparmakov 7 * Copyright (c) 2002-2004 Anton Altaparmakov
7 *
8 * This program/include file is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as published
10 * by the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program/include file is distributed in the hope that it will be
14 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program (in the main directory of the Linux-NTFS
20 * distribution in the file COPYING); if not, write to the Free Software
21 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */ 8 */
23 9
24#ifndef _LINUX_NTFS_SYSCTL_H 10#ifndef _LINUX_NTFS_SYSCTL_H
diff --git a/fs/ntfs/time.h b/fs/ntfs/time.h
index 24cd719f1fd2..6b63261300cc 100644
--- a/fs/ntfs/time.h
+++ b/fs/ntfs/time.h
@@ -1,22 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * time.h - NTFS time conversion functions. Part of the Linux-NTFS project. 3 * time.h - NTFS time conversion functions. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2001-2005 Anton Altaparmakov 5 * Copyright (c) 2001-2005 Anton Altaparmakov
5 *
6 * This program/include file is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as published
8 * by the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program/include file is distributed in the hope that it will be
12 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program (in the main directory of the Linux-NTFS
18 * distribution in the file COPYING); if not, write to the Free Software
19 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 6 */
21 7
22#ifndef _LINUX_NTFS_TIME_H 8#ifndef _LINUX_NTFS_TIME_H
diff --git a/fs/ntfs/types.h b/fs/ntfs/types.h
index 8c8053b66984..9a47859e7a06 100644
--- a/fs/ntfs/types.h
+++ b/fs/ntfs/types.h
@@ -1,23 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * types.h - Defines for NTFS Linux kernel driver specific types. 3 * types.h - Defines for NTFS Linux kernel driver specific types.
3 * Part of the Linux-NTFS project. 4 * Part of the Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2001-2005 Anton Altaparmakov 6 * Copyright (c) 2001-2005 Anton Altaparmakov
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#ifndef _LINUX_NTFS_TYPES_H 9#ifndef _LINUX_NTFS_TYPES_H
diff --git a/fs/ntfs/unistr.c b/fs/ntfs/unistr.c
index 005ca4b0f132..a6b6c64f14a9 100644
--- a/fs/ntfs/unistr.c
+++ b/fs/ntfs/unistr.c
@@ -1,22 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * unistr.c - NTFS Unicode string handling. Part of the Linux-NTFS project. 3 * unistr.c - NTFS Unicode string handling. Part of the Linux-NTFS project.
3 * 4 *
4 * Copyright (c) 2001-2006 Anton Altaparmakov 5 * Copyright (c) 2001-2006 Anton Altaparmakov
5 *
6 * This program/include file is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as published
8 * by the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program/include file is distributed in the hope that it will be
12 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program (in the main directory of the Linux-NTFS
18 * distribution in the file COPYING); if not, write to the Free Software
19 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 6 */
21 7
22#include <linux/slab.h> 8#include <linux/slab.h>
diff --git a/fs/ntfs/upcase.c b/fs/ntfs/upcase.c
index e2f72ca98037..4ebe84a78dea 100644
--- a/fs/ntfs/upcase.c
+++ b/fs/ntfs/upcase.c
@@ -1,24 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * upcase.c - Generate the full NTFS Unicode upcase table in little endian. 3 * upcase.c - Generate the full NTFS Unicode upcase table in little endian.
3 * Part of the Linux-NTFS project. 4 * Part of the Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2001 Richard Russon <ntfs@flatcap.org> 6 * Copyright (c) 2001 Richard Russon <ntfs@flatcap.org>
6 * Copyright (c) 2001-2006 Anton Altaparmakov 7 * Copyright (c) 2001-2006 Anton Altaparmakov
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the Free
10 * Software Foundation; either version 2 of the License, or (at your option)
11 * any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program (in the main directory of the Linux-NTFS source
20 * in the file COPYING); if not, write to the Free Software Foundation,
21 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */ 8 */
23 9
24#include "malloc.h" 10#include "malloc.h"
diff --git a/fs/ntfs/usnjrnl.c b/fs/ntfs/usnjrnl.c
index b2bc0d55b036..9097a0b4ef25 100644
--- a/fs/ntfs/usnjrnl.c
+++ b/fs/ntfs/usnjrnl.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * usnjrnl.h - NTFS kernel transaction log ($UsnJrnl) handling. Part of the 3 * usnjrnl.h - NTFS kernel transaction log ($UsnJrnl) handling. Part of the
3 * Linux-NTFS project. 4 * Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2005 Anton Altaparmakov 6 * Copyright (c) 2005 Anton Altaparmakov
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#ifdef NTFS_RW 9#ifdef NTFS_RW
diff --git a/fs/ntfs/usnjrnl.h b/fs/ntfs/usnjrnl.h
index 00d8e6bd7c36..85f531b59395 100644
--- a/fs/ntfs/usnjrnl.h
+++ b/fs/ntfs/usnjrnl.h
@@ -1,23 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * usnjrnl.h - Defines for NTFS kernel transaction log ($UsnJrnl) handling. 3 * usnjrnl.h - Defines for NTFS kernel transaction log ($UsnJrnl) handling.
3 * Part of the Linux-NTFS project. 4 * Part of the Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2005 Anton Altaparmakov 6 * Copyright (c) 2005 Anton Altaparmakov
6 *
7 * This program/include file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program/include file is distributed in the hope that it will be
13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program (in the main directory of the Linux-NTFS
19 * distribution in the file COPYING); if not, write to the Free Software
20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 7 */
22 8
23#ifndef _LINUX_NTFS_USNJRNL_H 9#ifndef _LINUX_NTFS_USNJRNL_H
diff --git a/fs/ntfs/volume.h b/fs/ntfs/volume.h
index 4f579b02bc76..930a9ae8a053 100644
--- a/fs/ntfs/volume.h
+++ b/fs/ntfs/volume.h
@@ -1,24 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * volume.h - Defines for volume structures in NTFS Linux kernel driver. Part 3 * volume.h - Defines for volume structures in NTFS Linux kernel driver. Part
3 * of the Linux-NTFS project. 4 * of the Linux-NTFS project.
4 * 5 *
5 * Copyright (c) 2001-2006 Anton Altaparmakov 6 * Copyright (c) 2001-2006 Anton Altaparmakov
6 * Copyright (c) 2002 Richard Russon 7 * Copyright (c) 2002 Richard Russon
7 *
8 * This program/include file is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as published
10 * by the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program/include file is distributed in the hope that it will be
14 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program (in the main directory of the Linux-NTFS
20 * distribution in the file COPYING); if not, write to the Free Software
21 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */ 8 */
23 9
24#ifndef _LINUX_NTFS_VOLUME_H 10#ifndef _LINUX_NTFS_VOLUME_H
diff --git a/fs/ocfs2/Kconfig b/fs/ocfs2/Kconfig
index 77a8de5f7119..46bba20da6b5 100644
--- a/fs/ocfs2/Kconfig
+++ b/fs/ocfs2/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config OCFS2_FS 2config OCFS2_FS
2 tristate "OCFS2 file system support" 3 tristate "OCFS2 file system support"
3 depends on NET && SYSFS && CONFIGFS_FS 4 depends on NET && SYSFS && CONFIGFS_FS
diff --git a/fs/ocfs2/acl.c b/fs/ocfs2/acl.c
index 917fadca8a7b..3e7da392aa6f 100644
--- a/fs/ocfs2/acl.c
+++ b/fs/ocfs2/acl.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -8,15 +9,6 @@
8 * CREDITS: 9 * CREDITS:
9 * Lots of code in this file is copy from linux/fs/ext3/acl.c. 10 * Lots of code in this file is copy from linux/fs/ext3/acl.c.
10 * Copyright (C) 2001-2003 Andreas Gruenbacher, <agruen@suse.de> 11 * Copyright (C) 2001-2003 Andreas Gruenbacher, <agruen@suse.de>
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public
14 * License version 2 as published by the Free Software Foundation.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * General Public License for more details.
20 */ 12 */
21 13
22#include <linux/init.h> 14#include <linux/init.h>
diff --git a/fs/ocfs2/acl.h b/fs/ocfs2/acl.h
index 7be0bb756286..127b13432146 100644
--- a/fs/ocfs2/acl.h
+++ b/fs/ocfs2/acl.h
@@ -1,18 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * acl.h 5 * acl.h
5 * 6 *
6 * Copyright (C) 2004, 2008 Oracle. All rights reserved. 7 * Copyright (C) 2004, 2008 Oracle. All rights reserved.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License version 2 as published by the Free Software Foundation.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 */ 8 */
17 9
18#ifndef OCFS2_ACL_H 10#ifndef OCFS2_ACL_H
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
index 6f0999015a44..d1348fc4ca6d 100644
--- a/fs/ocfs2/alloc.c
+++ b/fs/ocfs2/alloc.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Extent allocs and frees 7 * Extent allocs and frees
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#include <linux/fs.h> 12#include <linux/fs.h>
diff --git a/fs/ocfs2/alloc.h b/fs/ocfs2/alloc.h
index 250bcacdf9e9..7f973dd76dbc 100644
--- a/fs/ocfs2/alloc.h
+++ b/fs/ocfs2/alloc.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_ALLOC_H 12#ifndef OCFS2_ALLOC_H
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index 832c1759a09a..a4c905d6b575 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -1,22 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 5 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA.
20 */ 6 */
21 7
22#include <linux/fs.h> 8#include <linux/fs.h>
diff --git a/fs/ocfs2/aops.h b/fs/ocfs2/aops.h
index 3494a62ed749..70ed4382750d 100644
--- a/fs/ocfs2/aops.h
+++ b/fs/ocfs2/aops.h
@@ -1,22 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * Copyright (C) 2002, 2004, 2005 Oracle. All rights reserved. 5 * Copyright (C) 2002, 2004, 2005 Oracle. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA.
20 */ 6 */
21 7
22#ifndef OCFS2_AOPS_H 8#ifndef OCFS2_AOPS_H
diff --git a/fs/ocfs2/blockcheck.c b/fs/ocfs2/blockcheck.c
index 0725e6054650..005b813a56b6 100644
--- a/fs/ocfs2/blockcheck.c
+++ b/fs/ocfs2/blockcheck.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,15 +7,6 @@
6 * Checksum and ECC codes for the OCFS2 userspace library. 7 * Checksum and ECC codes for the OCFS2 userspace library.
7 * 8 *
8 * Copyright (C) 2006, 2008 Oracle. All rights reserved. 9 * Copyright (C) 2006, 2008 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License, version 2, as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 */ 10 */
19 11
20#include <linux/kernel.h> 12#include <linux/kernel.h>
diff --git a/fs/ocfs2/blockcheck.h b/fs/ocfs2/blockcheck.h
index d4b69febf70a..f2d2689407fa 100644
--- a/fs/ocfs2/blockcheck.h
+++ b/fs/ocfs2/blockcheck.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,15 +7,6 @@
6 * Checksum and ECC codes for the OCFS2 userspace library. 7 * Checksum and ECC codes for the OCFS2 userspace library.
7 * 8 *
8 * Copyright (C) 2004, 2008 Oracle. All rights reserved. 9 * Copyright (C) 2004, 2008 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License, version 2, as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 */ 10 */
19 11
20#ifndef OCFS2_BLOCKCHECK_H 12#ifndef OCFS2_BLOCKCHECK_H
diff --git a/fs/ocfs2/buffer_head_io.c b/fs/ocfs2/buffer_head_io.c
index f9b84f7a3e4b..f0b104e483d8 100644
--- a/fs/ocfs2/buffer_head_io.c
+++ b/fs/ocfs2/buffer_head_io.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Buffer cache handling 7 * Buffer cache handling
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#include <linux/fs.h> 12#include <linux/fs.h>
diff --git a/fs/ocfs2/buffer_head_io.h b/fs/ocfs2/buffer_head_io.h
index b1bb70c8ca4d..1c5e533fba04 100644
--- a/fs/ocfs2/buffer_head_io.h
+++ b/fs/ocfs2/buffer_head_io.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Buffer cache handling functions defined 7 * Buffer cache handling functions defined
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_BUFFER_HEAD_IO_H 12#ifndef OCFS2_BUFFER_HEAD_IO_H
diff --git a/fs/ocfs2/cluster/Makefile b/fs/ocfs2/cluster/Makefile
index 1aefc0350ec3..0e5b73215819 100644
--- a/fs/ocfs2/cluster/Makefile
+++ b/fs/ocfs2/cluster/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1obj-$(CONFIG_OCFS2_FS) += ocfs2_nodemanager.o 2obj-$(CONFIG_OCFS2_FS) += ocfs2_nodemanager.o
2 3
3ocfs2_nodemanager-objs := heartbeat.o masklog.o sys.o nodemanager.o \ 4ocfs2_nodemanager-objs := heartbeat.o masklog.o sys.o nodemanager.o \
diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c
index f3c20b279eb2..7a3a096856a8 100644
--- a/fs/ocfs2/cluster/heartbeat.c
+++ b/fs/ocfs2/cluster/heartbeat.c
@@ -1,22 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * Copyright (C) 2004, 2005 Oracle. All rights reserved. 5 * Copyright (C) 2004, 2005 Oracle. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA.
20 */ 6 */
21 7
22#include <linux/kernel.h> 8#include <linux/kernel.h>
diff --git a/fs/ocfs2/cluster/heartbeat.h b/fs/ocfs2/cluster/heartbeat.h
index a9e67efc0004..7f37540ac4ab 100644
--- a/fs/ocfs2/cluster/heartbeat.h
+++ b/fs/ocfs2/cluster/heartbeat.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2004 Oracle. All rights reserved. 9 * Copyright (C) 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27#ifndef O2CLUSTER_HEARTBEAT_H 12#ifndef O2CLUSTER_HEARTBEAT_H
diff --git a/fs/ocfs2/cluster/masklog.c b/fs/ocfs2/cluster/masklog.c
index d331c2386b94..1d696c96b8b2 100644
--- a/fs/ocfs2/cluster/masklog.c
+++ b/fs/ocfs2/cluster/masklog.c
@@ -1,22 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * Copyright (C) 2004, 2005 Oracle. All rights reserved. 5 * Copyright (C) 2004, 2005 Oracle. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA.
20 */ 6 */
21 7
22#include <linux/module.h> 8#include <linux/module.h>
diff --git a/fs/ocfs2/cluster/masklog.h b/fs/ocfs2/cluster/masklog.h
index a396096a5099..446e452ac7a6 100644
--- a/fs/ocfs2/cluster/masklog.h
+++ b/fs/ocfs2/cluster/masklog.h
@@ -1,22 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * Copyright (C) 2005 Oracle. All rights reserved. 5 * Copyright (C) 2005 Oracle. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA.
20 */ 6 */
21 7
22#ifndef O2CLUSTER_MASKLOG_H 8#ifndef O2CLUSTER_MASKLOG_H
diff --git a/fs/ocfs2/cluster/netdebug.c b/fs/ocfs2/cluster/netdebug.c
index 74a21f6695c8..0784575f4c2a 100644
--- a/fs/ocfs2/cluster/netdebug.c
+++ b/fs/ocfs2/cluster/netdebug.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * debug functionality for o2net 7 * debug functionality for o2net
7 * 8 *
8 * Copyright (C) 2005, 2008 Oracle. All rights reserved. 9 * Copyright (C) 2005, 2008 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27#ifdef CONFIG_DEBUG_FS 12#ifdef CONFIG_DEBUG_FS
diff --git a/fs/ocfs2/cluster/nodemanager.c b/fs/ocfs2/cluster/nodemanager.c
index 4ac775e32240..2234f7fd1f7c 100644
--- a/fs/ocfs2/cluster/nodemanager.c
+++ b/fs/ocfs2/cluster/nodemanager.c
@@ -1,22 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * Copyright (C) 2004, 2005 Oracle. All rights reserved. 5 * Copyright (C) 2004, 2005 Oracle. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA.
20 */ 6 */
21 7
22#include <linux/slab.h> 8#include <linux/slab.h>
diff --git a/fs/ocfs2/cluster/nodemanager.h b/fs/ocfs2/cluster/nodemanager.h
index 09ea2d388bbb..3e0006631cc4 100644
--- a/fs/ocfs2/cluster/nodemanager.h
+++ b/fs/ocfs2/cluster/nodemanager.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2004 Oracle. All rights reserved. 9 * Copyright (C) 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27#ifndef O2CLUSTER_NODEMANAGER_H 12#ifndef O2CLUSTER_NODEMANAGER_H
diff --git a/fs/ocfs2/cluster/ocfs2_heartbeat.h b/fs/ocfs2/cluster/ocfs2_heartbeat.h
index 3f4151da9709..760d850be11e 100644
--- a/fs/ocfs2/cluster/ocfs2_heartbeat.h
+++ b/fs/ocfs2/cluster/ocfs2_heartbeat.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * On-disk structures for ocfs2_heartbeat 7 * On-disk structures for ocfs2_heartbeat
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef _OCFS2_HEARTBEAT_H 12#ifndef _OCFS2_HEARTBEAT_H
diff --git a/fs/ocfs2/cluster/ocfs2_nodemanager.h b/fs/ocfs2/cluster/ocfs2_nodemanager.h
index 49b594325bec..21ad307419a8 100644
--- a/fs/ocfs2/cluster/ocfs2_nodemanager.h
+++ b/fs/ocfs2/cluster/ocfs2_nodemanager.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -7,22 +8,6 @@
7 * for the ocfs2_nodemanager module. 8 * for the ocfs2_nodemanager module.
8 * 9 *
9 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 10 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
10 *
11 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public
13 * License as published by the Free Software Foundation; either
14 * version 2 of the License, or (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public
22 * License along with this program; if not, write to the
23 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24 * Boston, MA 021110-1307, USA.
25 *
26 */ 11 */
27 12
28#ifndef _OCFS2_NODEMANAGER_H 13#ifndef _OCFS2_NODEMANAGER_H
diff --git a/fs/ocfs2/cluster/quorum.c b/fs/ocfs2/cluster/quorum.c
index 67dcee65fe50..3d5d4b2b1356 100644
--- a/fs/ocfs2/cluster/quorum.c
+++ b/fs/ocfs2/cluster/quorum.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * 3 *
3 * vim: noexpandtab sw=8 ts=8 sts=0: 4 * vim: noexpandtab sw=8 ts=8 sts=0:
4 * 5 *
5 * Copyright (C) 2005 Oracle. All rights reserved. 6 * Copyright (C) 2005 Oracle. All rights reserved.
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public
18 * License along with this program; if not, write to the
19 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 * Boston, MA 021110-1307, USA.
21 */ 7 */
22 8
23/* This quorum hack is only here until we transition to some more rational 9/* This quorum hack is only here until we transition to some more rational
diff --git a/fs/ocfs2/cluster/quorum.h b/fs/ocfs2/cluster/quorum.h
index 6649cc6f67c9..6d45ce8b18a1 100644
--- a/fs/ocfs2/cluster/quorum.h
+++ b/fs/ocfs2/cluster/quorum.h
@@ -1,23 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * Copyright (C) 2005 Oracle. All rights reserved. 5 * Copyright (C) 2005 Oracle. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA.
20 *
21 */ 6 */
22 7
23#ifndef O2CLUSTER_QUORUM_H 8#ifndef O2CLUSTER_QUORUM_H
diff --git a/fs/ocfs2/cluster/sys.c b/fs/ocfs2/cluster/sys.c
index b7f57271d49c..d6067c3d84c1 100644
--- a/fs/ocfs2/cluster/sys.c
+++ b/fs/ocfs2/cluster/sys.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * OCFS2 cluster sysfs interface 7 * OCFS2 cluster sysfs interface
7 * 8 *
8 * Copyright (C) 2005 Oracle. All rights reserved. 9 * Copyright (C) 2005 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation,
13 * version 2 of the License.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27#include <linux/kernel.h> 12#include <linux/kernel.h>
diff --git a/fs/ocfs2/cluster/sys.h b/fs/ocfs2/cluster/sys.h
index d66b8ab0045e..ce380517cf17 100644
--- a/fs/ocfs2/cluster/sys.h
+++ b/fs/ocfs2/cluster/sys.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * Function prototypes for o2cb sysfs interface 7 * Function prototypes for o2cb sysfs interface
7 * 8 *
8 * Copyright (C) 2005 Oracle. All rights reserved. 9 * Copyright (C) 2005 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation,
13 * version 2 of the License.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27#ifndef O2CLUSTER_SYS_H 12#ifndef O2CLUSTER_SYS_H
diff --git a/fs/ocfs2/cluster/tcp.c b/fs/ocfs2/cluster/tcp.c
index e9f236af1927..c599463d0694 100644
--- a/fs/ocfs2/cluster/tcp.c
+++ b/fs/ocfs2/cluster/tcp.c
@@ -1,24 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * 3 *
3 * vim: noexpandtab sw=8 ts=8 sts=0: 4 * vim: noexpandtab sw=8 ts=8 sts=0:
4 * 5 *
5 * Copyright (C) 2004 Oracle. All rights reserved. 6 * Copyright (C) 2004 Oracle. All rights reserved.
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public
18 * License along with this program; if not, write to the
19 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 * Boston, MA 021110-1307, USA.
21 *
22 * ---- 8 * ----
23 * 9 *
24 * Callers for this were originally written against a very simple synchronus 10 * Callers for this were originally written against a very simple synchronus
diff --git a/fs/ocfs2/cluster/tcp.h b/fs/ocfs2/cluster/tcp.h
index c571e849fda4..dd4242be3f1f 100644
--- a/fs/ocfs2/cluster/tcp.h
+++ b/fs/ocfs2/cluster/tcp.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2004 Oracle. All rights reserved. 9 * Copyright (C) 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27#ifndef O2CLUSTER_TCP_H 12#ifndef O2CLUSTER_TCP_H
diff --git a/fs/ocfs2/cluster/tcp_internal.h b/fs/ocfs2/cluster/tcp_internal.h
index 0276f7f8d5e6..e6a2b9dfcd16 100644
--- a/fs/ocfs2/cluster/tcp_internal.h
+++ b/fs/ocfs2/cluster/tcp_internal.h
@@ -1,22 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * Copyright (C) 2005 Oracle. All rights reserved. 5 * Copyright (C) 2005 Oracle. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA.
20 */ 6 */
21 7
22#ifndef O2CLUSTER_TCP_INTERNAL_H 8#ifndef O2CLUSTER_TCP_INTERNAL_H
diff --git a/fs/ocfs2/dcache.c b/fs/ocfs2/dcache.c
index 290373024d9d..42a61eecdacd 100644
--- a/fs/ocfs2/dcache.c
+++ b/fs/ocfs2/dcache.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * dentry cache handling code 7 * dentry cache handling code
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#include <linux/fs.h> 12#include <linux/fs.h>
@@ -310,6 +296,18 @@ int ocfs2_dentry_attach_lock(struct dentry *dentry,
310 296
311out_attach: 297out_attach:
312 spin_lock(&dentry_attach_lock); 298 spin_lock(&dentry_attach_lock);
299 if (unlikely(dentry->d_fsdata && !alias)) {
300 /* d_fsdata is set by a racing thread which is doing
301 * the same thing as this thread is doing. Leave the racing
302 * thread going ahead and we return here.
303 */
304 spin_unlock(&dentry_attach_lock);
305 iput(dl->dl_inode);
306 ocfs2_lock_res_free(&dl->dl_lockres);
307 kfree(dl);
308 return 0;
309 }
310
313 dentry->d_fsdata = dl; 311 dentry->d_fsdata = dl;
314 dl->dl_count++; 312 dl->dl_count++;
315 spin_unlock(&dentry_attach_lock); 313 spin_unlock(&dentry_attach_lock);
diff --git a/fs/ocfs2/dcache.h b/fs/ocfs2/dcache.h
index 55f58892b153..3686a52ba143 100644
--- a/fs/ocfs2/dcache.h
+++ b/fs/ocfs2/dcache.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_DCACHE_H 12#ifndef OCFS2_DCACHE_H
diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c
index 85f21caaa6ec..784426dee56c 100644
--- a/fs/ocfs2/dir.c
+++ b/fs/ocfs2/dir.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -19,21 +20,6 @@
19 * linux/fs/minix/dir.c 20 * linux/fs/minix/dir.c
20 * 21 *
21 * Copyright (C) 1991, 1992 Linus Torvalds 22 * Copyright (C) 1991, 1992 Linus Torvalds
22 *
23 * This program is free software; you can redistribute it and/or
24 * modify it under the terms of the GNU General Public
25 * License as published by the Free Software Foundation; either
26 * version 2 of the License, or (at your option) any later version.
27 *
28 * This program is distributed in the hope that it will be useful,
29 * but WITHOUT ANY WARRANTY; without even the implied warranty of
30 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
31 * General Public License for more details.
32 *
33 * You should have received a copy of the GNU General Public
34 * License along with this program; if not, write to the
35 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
36 * Boston, MA 021110-1307, USA.
37 */ 23 */
38 24
39#include <linux/fs.h> 25#include <linux/fs.h>
diff --git a/fs/ocfs2/dir.h b/fs/ocfs2/dir.h
index 3d8639f38973..e3e7d5dd29e8 100644
--- a/fs/ocfs2/dir.h
+++ b/fs/ocfs2/dir.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_DIR_H 12#ifndef OCFS2_DIR_H
diff --git a/fs/ocfs2/dlm/Makefile b/fs/ocfs2/dlm/Makefile
index 3d4041f0431e..38b224372776 100644
--- a/fs/ocfs2/dlm/Makefile
+++ b/fs/ocfs2/dlm/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1ccflags-y := -I $(srctree)/$(src)/.. 2ccflags-y := -I $(srctree)/$(src)/..
2 3
3obj-$(CONFIG_OCFS2_FS_O2CB) += ocfs2_dlm.o 4obj-$(CONFIG_OCFS2_FS_O2CB) += ocfs2_dlm.o
diff --git a/fs/ocfs2/dlm/dlmapi.h b/fs/ocfs2/dlm/dlmapi.h
index 3cfa114aa391..6456c0fbcbb2 100644
--- a/fs/ocfs2/dlm/dlmapi.h
+++ b/fs/ocfs2/dlm/dlmapi.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * externally exported dlm interfaces 7 * externally exported dlm interfaces
7 * 8 *
8 * Copyright (C) 2004 Oracle. All rights reserved. 9 * Copyright (C) 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27#ifndef DLMAPI_H 12#ifndef DLMAPI_H
diff --git a/fs/ocfs2/dlm/dlmast.c b/fs/ocfs2/dlm/dlmast.c
index 39831fc2fd52..4de89af96abf 100644
--- a/fs/ocfs2/dlm/dlmast.c
+++ b/fs/ocfs2/dlm/dlmast.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * AST and BAST functionality for local and remote nodes 7 * AST and BAST functionality for local and remote nodes
7 * 8 *
8 * Copyright (C) 2004 Oracle. All rights reserved. 9 * Copyright (C) 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27 12
diff --git a/fs/ocfs2/dlm/dlmcommon.h b/fs/ocfs2/dlm/dlmcommon.h
index d06e27ec4be4..69a429b625cc 100644
--- a/fs/ocfs2/dlm/dlmcommon.h
+++ b/fs/ocfs2/dlm/dlmcommon.h
@@ -1,25 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * dlmcommon.h 5 * dlmcommon.h
5 * 6 *
6 * Copyright (C) 2004 Oracle. All rights reserved. 7 * Copyright (C) 2004 Oracle. All rights reserved.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public
19 * License along with this program; if not, write to the
20 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 * Boston, MA 021110-1307, USA.
22 *
23 */ 8 */
24 9
25#ifndef DLMCOMMON_H 10#ifndef DLMCOMMON_H
diff --git a/fs/ocfs2/dlm/dlmconvert.c b/fs/ocfs2/dlm/dlmconvert.c
index 0bb128659d4b..965f45dbe17b 100644
--- a/fs/ocfs2/dlm/dlmconvert.c
+++ b/fs/ocfs2/dlm/dlmconvert.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * underlying calls for lock conversion 7 * underlying calls for lock conversion
7 * 8 *
8 * Copyright (C) 2004 Oracle. All rights reserved. 9 * Copyright (C) 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27 12
diff --git a/fs/ocfs2/dlm/dlmconvert.h b/fs/ocfs2/dlm/dlmconvert.h
index b2e3677df878..12d9c28bc52f 100644
--- a/fs/ocfs2/dlm/dlmconvert.h
+++ b/fs/ocfs2/dlm/dlmconvert.h
@@ -1,25 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * dlmconvert.h 5 * dlmconvert.h
5 * 6 *
6 * Copyright (C) 2004 Oracle. All rights reserved. 7 * Copyright (C) 2004 Oracle. All rights reserved.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public
19 * License along with this program; if not, write to the
20 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 * Boston, MA 021110-1307, USA.
22 *
23 */ 8 */
24 9
25#ifndef DLMCONVERT_H 10#ifndef DLMCONVERT_H
diff --git a/fs/ocfs2/dlm/dlmdebug.c b/fs/ocfs2/dlm/dlmdebug.c
index 1d6dc8422899..c8af5bc9e980 100644
--- a/fs/ocfs2/dlm/dlmdebug.c
+++ b/fs/ocfs2/dlm/dlmdebug.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * debug functionality for the dlm 7 * debug functionality for the dlm
7 * 8 *
8 * Copyright (C) 2004, 2008 Oracle. All rights reserved. 9 * Copyright (C) 2004, 2008 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27#include <linux/types.h> 12#include <linux/types.h>
diff --git a/fs/ocfs2/dlm/dlmdebug.h b/fs/ocfs2/dlm/dlmdebug.h
index 5ced5482e7d3..74d019694c7e 100644
--- a/fs/ocfs2/dlm/dlmdebug.h
+++ b/fs/ocfs2/dlm/dlmdebug.h
@@ -1,25 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * dlmdebug.h 5 * dlmdebug.h
5 * 6 *
6 * Copyright (C) 2008 Oracle. All rights reserved. 7 * Copyright (C) 2008 Oracle. All rights reserved.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public
19 * License along with this program; if not, write to the
20 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 * Boston, MA 021110-1307, USA.
22 *
23 */ 8 */
24 9
25#ifndef DLMDEBUG_H 10#ifndef DLMDEBUG_H
diff --git a/fs/ocfs2/dlm/dlmdomain.c b/fs/ocfs2/dlm/dlmdomain.c
index 2acd58ba9b7b..9021e72e1f98 100644
--- a/fs/ocfs2/dlm/dlmdomain.c
+++ b/fs/ocfs2/dlm/dlmdomain.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * defines domain join / leave apis 7 * defines domain join / leave apis
7 * 8 *
8 * Copyright (C) 2004 Oracle. All rights reserved. 9 * Copyright (C) 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27#include <linux/module.h> 12#include <linux/module.h>
diff --git a/fs/ocfs2/dlm/dlmdomain.h b/fs/ocfs2/dlm/dlmdomain.h
index 8a9281411c18..7c21664d23d0 100644
--- a/fs/ocfs2/dlm/dlmdomain.h
+++ b/fs/ocfs2/dlm/dlmdomain.h
@@ -1,25 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * dlmdomain.h 5 * dlmdomain.h
5 * 6 *
6 * Copyright (C) 2004 Oracle. All rights reserved. 7 * Copyright (C) 2004 Oracle. All rights reserved.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public
19 * License along with this program; if not, write to the
20 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 * Boston, MA 021110-1307, USA.
22 *
23 */ 8 */
24 9
25#ifndef DLMDOMAIN_H 10#ifndef DLMDOMAIN_H
diff --git a/fs/ocfs2/dlm/dlmlock.c b/fs/ocfs2/dlm/dlmlock.c
index 74962315794e..baff087f3863 100644
--- a/fs/ocfs2/dlm/dlmlock.c
+++ b/fs/ocfs2/dlm/dlmlock.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * underlying calls for lock creation 7 * underlying calls for lock creation
7 * 8 *
8 * Copyright (C) 2004 Oracle. All rights reserved. 9 * Copyright (C) 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27 12
diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c
index 826f0567ec43..810f841494ef 100644
--- a/fs/ocfs2/dlm/dlmmaster.c
+++ b/fs/ocfs2/dlm/dlmmaster.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * standalone DLM module 7 * standalone DLM module
7 * 8 *
8 * Copyright (C) 2004 Oracle. All rights reserved. 9 * Copyright (C) 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27 12
diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c
index 802636d50365..e22d6a115220 100644
--- a/fs/ocfs2/dlm/dlmrecovery.c
+++ b/fs/ocfs2/dlm/dlmrecovery.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * recovery stuff 7 * recovery stuff
7 * 8 *
8 * Copyright (C) 2004 Oracle. All rights reserved. 9 * Copyright (C) 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27 12
diff --git a/fs/ocfs2/dlm/dlmthread.c b/fs/ocfs2/dlm/dlmthread.c
index 074d5de17bb2..61c51c268460 100644
--- a/fs/ocfs2/dlm/dlmthread.c
+++ b/fs/ocfs2/dlm/dlmthread.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * standalone DLM module 7 * standalone DLM module
7 * 8 *
8 * Copyright (C) 2004 Oracle. All rights reserved. 9 * Copyright (C) 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27 12
diff --git a/fs/ocfs2/dlm/dlmunlock.c b/fs/ocfs2/dlm/dlmunlock.c
index 63d701cd1e2e..e78657742bd8 100644
--- a/fs/ocfs2/dlm/dlmunlock.c
+++ b/fs/ocfs2/dlm/dlmunlock.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,22 +7,6 @@
6 * underlying calls for unlocking locks 7 * underlying calls for unlocking locks
7 * 8 *
8 * Copyright (C) 2004 Oracle. All rights reserved. 9 * Copyright (C) 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 *
25 */ 10 */
26 11
27 12
diff --git a/fs/ocfs2/dlmfs/Makefile b/fs/ocfs2/dlmfs/Makefile
index 0a0b93d940fe..a9874e441bd4 100644
--- a/fs/ocfs2/dlmfs/Makefile
+++ b/fs/ocfs2/dlmfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1ccflags-y := -I $(srctree)/$(src)/.. 2ccflags-y := -I $(srctree)/$(src)/..
2 3
3obj-$(CONFIG_OCFS2_FS) += ocfs2_dlmfs.o 4obj-$(CONFIG_OCFS2_FS) += ocfs2_dlmfs.o
diff --git a/fs/ocfs2/dlmfs/dlmfs.c b/fs/ocfs2/dlmfs/dlmfs.c
index 98885181e1fe..4f1668c81e1f 100644
--- a/fs/ocfs2/dlmfs/dlmfs.c
+++ b/fs/ocfs2/dlmfs/dlmfs.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -9,21 +10,6 @@
9 * which was a template for the fs side of this module. 10 * which was a template for the fs side of this module.
10 * 11 *
11 * Copyright (C) 2003, 2004 Oracle. All rights reserved. 12 * Copyright (C) 2003, 2004 Oracle. All rights reserved.
12 *
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public
15 * License as published by the Free Software Foundation; either
16 * version 2 of the License, or (at your option) any later version.
17 *
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 * General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public
24 * License along with this program; if not, write to the
25 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
26 * Boston, MA 021110-1307, USA.
27 */ 13 */
28 14
29/* Simple VFS hooks based on: */ 15/* Simple VFS hooks based on: */
diff --git a/fs/ocfs2/dlmfs/userdlm.c b/fs/ocfs2/dlmfs/userdlm.c
index 9cecf4857195..525b14ddfba5 100644
--- a/fs/ocfs2/dlmfs/userdlm.c
+++ b/fs/ocfs2/dlmfs/userdlm.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -10,21 +11,6 @@
10 * functions. 11 * functions.
11 * 12 *
12 * Copyright (C) 2003, 2004 Oracle. All rights reserved. 13 * Copyright (C) 2003, 2004 Oracle. All rights reserved.
13 *
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public
16 * License as published by the Free Software Foundation; either
17 * version 2 of the License, or (at your option) any later version.
18 *
19 * This program is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 * General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public
25 * License along with this program; if not, write to the
26 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
27 * Boston, MA 021110-1307, USA.
28 */ 14 */
29 15
30#include <linux/signal.h> 16#include <linux/signal.h>
diff --git a/fs/ocfs2/dlmfs/userdlm.h b/fs/ocfs2/dlmfs/userdlm.h
index ede94a6e7fd3..4bef7cdef859 100644
--- a/fs/ocfs2/dlmfs/userdlm.h
+++ b/fs/ocfs2/dlmfs/userdlm.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Userspace dlm defines 7 * Userspace dlm defines
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26 12
diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c
index af405586c5b1..b5fc5d3c7525 100644
--- a/fs/ocfs2/dlmglue.c
+++ b/fs/ocfs2/dlmglue.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Code which implements an OCFS2 specific interface to our DLM. 7 * Code which implements an OCFS2 specific interface to our DLM.
7 * 8 *
8 * Copyright (C) 2003, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2003, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#include <linux/types.h> 12#include <linux/types.h>
diff --git a/fs/ocfs2/dlmglue.h b/fs/ocfs2/dlmglue.h
index 4ec1c828f6e0..b8fbed25df89 100644
--- a/fs/ocfs2/dlmglue.h
+++ b/fs/ocfs2/dlmglue.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * description here 7 * description here
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26 12
diff --git a/fs/ocfs2/export.c b/fs/ocfs2/export.c
index af2888d23de3..69ed278dd84d 100644
--- a/fs/ocfs2/export.c
+++ b/fs/ocfs2/export.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Functions to facilitate NFS exporting 7 * Functions to facilitate NFS exporting
7 * 8 *
8 * Copyright (C) 2002, 2005 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2005 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#include <linux/fs.h> 12#include <linux/fs.h>
diff --git a/fs/ocfs2/export.h b/fs/ocfs2/export.h
index 41a738678c37..d485da0c3439 100644
--- a/fs/ocfs2/export.h
+++ b/fs/ocfs2/export.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2002, 2005 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2005 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_EXPORT_H 12#ifndef OCFS2_EXPORT_H
diff --git a/fs/ocfs2/extent_map.c b/fs/ocfs2/extent_map.c
index 06cb96462bf9..e66a249fe07c 100644
--- a/fs/ocfs2/extent_map.c
+++ b/fs/ocfs2/extent_map.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,20 +7,6 @@
6 * Block/Cluster mapping functions 7 * Block/Cluster mapping functions
7 * 8 *
8 * Copyright (C) 2004 Oracle. All rights reserved. 9 * Copyright (C) 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License, version 2, as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public
20 * License along with this program; if not, write to the
21 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22 * Boston, MA 021110-1307, USA.
23 */ 10 */
24 11
25#include <linux/fs.h> 12#include <linux/fs.h>
diff --git a/fs/ocfs2/extent_map.h b/fs/ocfs2/extent_map.h
index 1057586ec19f..e5464f6cee8a 100644
--- a/fs/ocfs2/extent_map.h
+++ b/fs/ocfs2/extent_map.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,20 +7,6 @@
6 * In-memory file extent mappings for OCFS2. 7 * In-memory file extent mappings for OCFS2.
7 * 8 *
8 * Copyright (C) 2004 Oracle. All rights reserved. 9 * Copyright (C) 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License, version 2, as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public
20 * License along with this program; if not, write to the
21 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22 * Boston, MA 021110-1307, USA.
23 */ 10 */
24 11
25#ifndef _EXTENT_MAP_H 12#ifndef _EXTENT_MAP_H
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index d640c5f8a85d..4435df3e5adb 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * File open, close, extend, truncate 7 * File open, close, extend, truncate
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#include <linux/capability.h> 12#include <linux/capability.h>
diff --git a/fs/ocfs2/file.h b/fs/ocfs2/file.h
index 7eb7f03531f6..4832cbceba5b 100644
--- a/fs/ocfs2/file.h
+++ b/fs/ocfs2/file.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_FILE_H 12#ifndef OCFS2_FILE_H
diff --git a/fs/ocfs2/filecheck.c b/fs/ocfs2/filecheck.c
index f65f2b2f594d..50f11bfdc8c2 100644
--- a/fs/ocfs2/filecheck.c
+++ b/fs/ocfs2/filecheck.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,15 +7,6 @@
6 * Code which implements online file check. 7 * Code which implements online file check.
7 * 8 *
8 * Copyright (C) 2016 SuSE. All rights reserved. 9 * Copyright (C) 2016 SuSE. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation, version 2.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 */ 10 */
19 11
20#include <linux/list.h> 12#include <linux/list.h>
@@ -193,6 +185,7 @@ int ocfs2_filecheck_create_sysfs(struct ocfs2_super *osb)
193 ret = kobject_init_and_add(&entry->fs_kobj, &ocfs2_ktype_filecheck, 185 ret = kobject_init_and_add(&entry->fs_kobj, &ocfs2_ktype_filecheck,
194 NULL, "filecheck"); 186 NULL, "filecheck");
195 if (ret) { 187 if (ret) {
188 kobject_put(&entry->fs_kobj);
196 kfree(fcheck); 189 kfree(fcheck);
197 return ret; 190 return ret;
198 } 191 }
diff --git a/fs/ocfs2/filecheck.h b/fs/ocfs2/filecheck.h
index 6a22ee79e8d0..4d006777ac54 100644
--- a/fs/ocfs2/filecheck.h
+++ b/fs/ocfs2/filecheck.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,15 +7,6 @@
6 * Online file check. 7 * Online file check.
7 * 8 *
8 * Copyright (C) 2016 SuSE. All rights reserved. 9 * Copyright (C) 2016 SuSE. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation, version 2.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 */ 10 */
19 11
20 12
diff --git a/fs/ocfs2/heartbeat.c b/fs/ocfs2/heartbeat.c
index d8208b20dc53..60c5f995d30c 100644
--- a/fs/ocfs2/heartbeat.c
+++ b/fs/ocfs2/heartbeat.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -7,21 +8,6 @@
7 * up to date, and fire off recovery when needed. 8 * up to date, and fire off recovery when needed.
8 * 9 *
9 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 10 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
10 *
11 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public
13 * License as published by the Free Software Foundation; either
14 * version 2 of the License, or (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public
22 * License along with this program; if not, write to the
23 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24 * Boston, MA 021110-1307, USA.
25 */ 11 */
26 12
27#include <linux/fs.h> 13#include <linux/fs.h>
diff --git a/fs/ocfs2/heartbeat.h b/fs/ocfs2/heartbeat.h
index 74b9c5dda28d..5fedb2d35dc0 100644
--- a/fs/ocfs2/heartbeat.h
+++ b/fs/ocfs2/heartbeat.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_HEARTBEAT_H 12#ifndef OCFS2_HEARTBEAT_H
diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c
index 79279240fb6e..7ad9d6590818 100644
--- a/fs/ocfs2/inode.c
+++ b/fs/ocfs2/inode.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * vfs' aops, fops, dops and iops 7 * vfs' aops, fops, dops and iops
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#include <linux/fs.h> 12#include <linux/fs.h>
diff --git a/fs/ocfs2/inode.h b/fs/ocfs2/inode.h
index 9b955f732bca..51a4f7197987 100644
--- a/fs/ocfs2/inode.h
+++ b/fs/ocfs2/inode.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_INODE_H 12#ifndef OCFS2_INODE_H
diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
index 46fd3ef2cf21..930e3d388579 100644
--- a/fs/ocfs2/journal.c
+++ b/fs/ocfs2/journal.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Defines functions of journalling api 7 * Defines functions of journalling api
7 * 8 *
8 * Copyright (C) 2003, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2003, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#include <linux/fs.h> 12#include <linux/fs.h>
diff --git a/fs/ocfs2/journal.h b/fs/ocfs2/journal.h
index 497a4171ef61..c0fe6ed08ab1 100644
--- a/fs/ocfs2/journal.h
+++ b/fs/ocfs2/journal.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Defines journalling api and structures. 7 * Defines journalling api and structures.
7 * 8 *
8 * Copyright (C) 2003, 2005 Oracle. All rights reserved. 9 * Copyright (C) 2003, 2005 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_JOURNAL_H 12#ifndef OCFS2_JOURNAL_H
diff --git a/fs/ocfs2/localalloc.c b/fs/ocfs2/localalloc.c
index 58973e4d2471..f03674afbd30 100644
--- a/fs/ocfs2/localalloc.c
+++ b/fs/ocfs2/localalloc.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Node local data allocation 7 * Node local data allocation
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#include <linux/fs.h> 12#include <linux/fs.h>
diff --git a/fs/ocfs2/localalloc.h b/fs/ocfs2/localalloc.h
index 44a7d1fb2dec..e8a5cea48639 100644
--- a/fs/ocfs2/localalloc.h
+++ b/fs/ocfs2/localalloc.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_LOCALALLOC_H 12#ifndef OCFS2_LOCALALLOC_H
diff --git a/fs/ocfs2/locks.c b/fs/ocfs2/locks.c
index b11acd34001a..7edc4e5c7c2c 100644
--- a/fs/ocfs2/locks.c
+++ b/fs/ocfs2/locks.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Userspace file locking support 7 * Userspace file locking support
7 * 8 *
8 * Copyright (C) 2007 Oracle. All rights reserved. 9 * Copyright (C) 2007 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#include <linux/fs.h> 12#include <linux/fs.h>
diff --git a/fs/ocfs2/locks.h b/fs/ocfs2/locks.h
index 496d488b271f..389fe1fce3a5 100644
--- a/fs/ocfs2/locks.h
+++ b/fs/ocfs2/locks.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Function prototypes for Userspace file locking support 7 * Function prototypes for Userspace file locking support
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_LOCKS_H 12#ifndef OCFS2_LOCKS_H
diff --git a/fs/ocfs2/mmap.c b/fs/ocfs2/mmap.c
index 05220b365fb9..3a44e461828a 100644
--- a/fs/ocfs2/mmap.c
+++ b/fs/ocfs2/mmap.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Code to deal with the mess that is clustered mmap. 7 * Code to deal with the mess that is clustered mmap.
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#include <linux/fs.h> 12#include <linux/fs.h>
diff --git a/fs/ocfs2/move_extents.c b/fs/ocfs2/move_extents.c
index 1565dd8e8856..758d9661ef1e 100644
--- a/fs/ocfs2/move_extents.c
+++ b/fs/ocfs2/move_extents.c
@@ -1,18 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * move_extents.c 5 * move_extents.c
5 * 6 *
6 * Copyright (C) 2011 Oracle. All rights reserved. 7 * Copyright (C) 2011 Oracle. All rights reserved.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License version 2 as published by the Free Software Foundation.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 */ 8 */
17#include <linux/fs.h> 9#include <linux/fs.h>
18#include <linux/types.h> 10#include <linux/types.h>
diff --git a/fs/ocfs2/move_extents.h b/fs/ocfs2/move_extents.h
index 4e143e811441..28cac43892c5 100644
--- a/fs/ocfs2/move_extents.h
+++ b/fs/ocfs2/move_extents.h
@@ -1,18 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * move_extents.h 5 * move_extents.h
5 * 6 *
6 * Copyright (C) 2011 Oracle. All rights reserved. 7 * Copyright (C) 2011 Oracle. All rights reserved.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License version 2 as published by the Free Software Foundation.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 */ 8 */
17#ifndef OCFS2_MOVE_EXTENTS_H 9#ifndef OCFS2_MOVE_EXTENTS_H
18#define OCFS2_MOVE_EXTENTS_H 10#define OCFS2_MOVE_EXTENTS_H
diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c
index b7ca84bc3df7..6f8e1c4fdb9c 100644
--- a/fs/ocfs2/namei.c
+++ b/fs/ocfs2/namei.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -19,21 +20,6 @@
19 * linux/fs/minix/dir.c 20 * linux/fs/minix/dir.c
20 * 21 *
21 * Copyright (C) 1991, 1992 Linux Torvalds 22 * Copyright (C) 1991, 1992 Linux Torvalds
22 *
23 * This program is free software; you can redistribute it and/or
24 * modify it under the terms of the GNU General Public
25 * License as published by the Free Software Foundation; either
26 * version 2 of the License, or (at your option) any later version.
27 *
28 * This program is distributed in the hope that it will be useful,
29 * but WITHOUT ANY WARRANTY; without even the implied warranty of
30 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
31 * General Public License for more details.
32 *
33 * You should have received a copy of the GNU General Public
34 * License along with this program; if not, write to the
35 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
36 * Boston, MA 021110-1307, USA.
37 */ 23 */
38 24
39#include <linux/fs.h> 25#include <linux/fs.h>
diff --git a/fs/ocfs2/namei.h b/fs/ocfs2/namei.h
index 1155918d6784..cc091ed02b4a 100644
--- a/fs/ocfs2/namei.h
+++ b/fs/ocfs2/namei.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_NAMEI_H 12#ifndef OCFS2_NAMEI_H
diff --git a/fs/ocfs2/ocfs1_fs_compat.h b/fs/ocfs2/ocfs1_fs_compat.h
index dfb313bda5dd..01ae48c4834d 100644
--- a/fs/ocfs2/ocfs1_fs_compat.h
+++ b/fs/ocfs2/ocfs1_fs_compat.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -9,20 +10,6 @@
9 * mount it. 10 * mount it.
10 * 11 *
11 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 12 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
12 *
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public
15 * License, version 2, as published by the Free Software Foundation.
16 *
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public
23 * License along with this program; if not, write to the
24 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
25 * Boston, MA 021110-1307, USA.
26 */ 13 */
27 14
28#ifndef _OCFS1_FS_COMPAT_H 15#ifndef _OCFS1_FS_COMPAT_H
diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h
index 1f029fbe8b8d..a4647a646f07 100644
--- a/fs/ocfs2/ocfs2.h
+++ b/fs/ocfs2/ocfs2.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Defines macros and structures used in OCFS2 7 * Defines macros and structures used in OCFS2
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_H 12#ifndef OCFS2_H
diff --git a/fs/ocfs2/ocfs2_fs.h b/fs/ocfs2/ocfs2_fs.h
index b86bf5e74348..0db4a7ec58a2 100644
--- a/fs/ocfs2/ocfs2_fs.h
+++ b/fs/ocfs2/ocfs2_fs.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,20 +7,6 @@
6 * On-disk structures for OCFS2. 7 * On-disk structures for OCFS2.
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License, version 2, as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public
20 * License along with this program; if not, write to the
21 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22 * Boston, MA 021110-1307, USA.
23 */ 10 */
24 11
25#ifndef _OCFS2_FS_H 12#ifndef _OCFS2_FS_H
diff --git a/fs/ocfs2/ocfs2_ioctl.h b/fs/ocfs2/ocfs2_ioctl.h
index 5b27ff1fa577..d7b31734f6be 100644
--- a/fs/ocfs2/ocfs2_ioctl.h
+++ b/fs/ocfs2/ocfs2_ioctl.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,15 +7,6 @@
6 * Defines OCFS2 ioctls. 7 * Defines OCFS2 ioctls.
7 * 8 *
8 * Copyright (C) 2010 Oracle. All rights reserved. 9 * Copyright (C) 2010 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License, version 2, as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 */ 10 */
19 11
20#ifndef OCFS2_IOCTL_H 12#ifndef OCFS2_IOCTL_H
diff --git a/fs/ocfs2/ocfs2_lockid.h b/fs/ocfs2/ocfs2_lockid.h
index 7051b994c776..b4be84956bc1 100644
--- a/fs/ocfs2/ocfs2_lockid.h
+++ b/fs/ocfs2/ocfs2_lockid.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Defines OCFS2 lockid bits. 7 * Defines OCFS2 lockid bits.
7 * 8 *
8 * Copyright (C) 2002, 2005 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2005 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_LOCKID_H 12#ifndef OCFS2_LOCKID_H
diff --git a/fs/ocfs2/ocfs2_lockingver.h b/fs/ocfs2/ocfs2_lockingver.h
index 2e45c8d2ea7e..5c9c105b33ee 100644
--- a/fs/ocfs2/ocfs2_lockingver.h
+++ b/fs/ocfs2/ocfs2_lockingver.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,15 +7,6 @@
6 * Defines OCFS2 Locking version values. 7 * Defines OCFS2 Locking version values.
7 * 8 *
8 * Copyright (C) 2008 Oracle. All rights reserved. 9 * Copyright (C) 2008 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License, version 2, as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 */ 10 */
19 11
20#ifndef OCFS2_LOCKINGVER_H 12#ifndef OCFS2_LOCKINGVER_H
diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c
index 1dc9a08e8bdc..ee43e51188be 100644
--- a/fs/ocfs2/refcounttree.c
+++ b/fs/ocfs2/refcounttree.c
@@ -1,18 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * refcounttree.c 5 * refcounttree.c
5 * 6 *
6 * Copyright (C) 2009 Oracle. All rights reserved. 7 * Copyright (C) 2009 Oracle. All rights reserved.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License version 2 as published by the Free Software Foundation.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 */ 8 */
17 9
18#include <linux/sort.h> 10#include <linux/sort.h>
diff --git a/fs/ocfs2/refcounttree.h b/fs/ocfs2/refcounttree.h
index e9e862be4a1e..0b9014495726 100644
--- a/fs/ocfs2/refcounttree.h
+++ b/fs/ocfs2/refcounttree.h
@@ -1,18 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * refcounttree.h 5 * refcounttree.h
5 * 6 *
6 * Copyright (C) 2009 Oracle. All rights reserved. 7 * Copyright (C) 2009 Oracle. All rights reserved.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License version 2 as published by the Free Software Foundation.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 */ 8 */
17#ifndef OCFS2_REFCOUNTTREE_H 9#ifndef OCFS2_REFCOUNTTREE_H
18#define OCFS2_REFCOUNTTREE_H 10#define OCFS2_REFCOUNTTREE_H
diff --git a/fs/ocfs2/reservations.c b/fs/ocfs2/reservations.c
index 6a348b0294ab..0249e8ca1028 100644
--- a/fs/ocfs2/reservations.c
+++ b/fs/ocfs2/reservations.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -13,15 +14,6 @@
13 * Universite Pierre et Marie Curie (Paris VI) 14 * Universite Pierre et Marie Curie (Paris VI)
14 * 15 *
15 * The rest is copyright (C) 2010 Novell. All rights reserved. 16 * The rest is copyright (C) 2010 Novell. All rights reserved.
16 *
17 * This program is free software; you can redistribute it and/or
18 * modify it under the terms of the GNU General Public
19 * License version 2 as published by the Free Software Foundation.
20 *
21 * This program is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 * General Public License for more details.
25 */ 17 */
26 18
27#include <linux/fs.h> 19#include <linux/fs.h>
diff --git a/fs/ocfs2/reservations.h b/fs/ocfs2/reservations.h
index 42c2b804f3fd..6ac88122896d 100644
--- a/fs/ocfs2/reservations.h
+++ b/fs/ocfs2/reservations.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,15 +7,6 @@
6 * Allocation reservations function prototypes and structures. 7 * Allocation reservations function prototypes and structures.
7 * 8 *
8 * Copyright (C) 2010 Novell. All rights reserved. 9 * Copyright (C) 2010 Novell. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License version 2 as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 */ 10 */
19 11
20#ifndef OCFS2_RESERVATIONS_H 12#ifndef OCFS2_RESERVATIONS_H
diff --git a/fs/ocfs2/resize.c b/fs/ocfs2/resize.c
index 18451e0fab81..24eb52f9059c 100644
--- a/fs/ocfs2/resize.c
+++ b/fs/ocfs2/resize.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -7,21 +8,6 @@
7 * Inspired by ext3/resize.c. 8 * Inspired by ext3/resize.c.
8 * 9 *
9 * Copyright (C) 2007 Oracle. All rights reserved. 10 * Copyright (C) 2007 Oracle. All rights reserved.
10 *
11 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public
13 * License as published by the Free Software Foundation; either
14 * version 2 of the License, or (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public
22 * License along with this program; if not, write to the
23 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24 * Boston, MA 021110-1307, USA.
25 */ 11 */
26 12
27#include <linux/fs.h> 13#include <linux/fs.h>
diff --git a/fs/ocfs2/resize.h b/fs/ocfs2/resize.h
index f38841abf10b..0af0c023042c 100644
--- a/fs/ocfs2/resize.h
+++ b/fs/ocfs2/resize.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2007 Oracle. All rights reserved. 9 * Copyright (C) 2007 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_RESIZE_H 12#ifndef OCFS2_RESIZE_H
diff --git a/fs/ocfs2/slot_map.c b/fs/ocfs2/slot_map.c
index ea0756d83250..8caeceeaeda7 100644
--- a/fs/ocfs2/slot_map.c
+++ b/fs/ocfs2/slot_map.c
@@ -1,26 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * slot_map.c 5 * slot_map.c
5 * 6 *
6 *
7 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 7 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 8 */
25 9
26#include <linux/types.h> 10#include <linux/types.h>
diff --git a/fs/ocfs2/slot_map.h b/fs/ocfs2/slot_map.h
index 601c95fd7003..93b53e73f0f7 100644
--- a/fs/ocfs2/slot_map.h
+++ b/fs/ocfs2/slot_map.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * description here 7 * description here
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26 12
diff --git a/fs/ocfs2/stack_o2cb.c b/fs/ocfs2/stack_o2cb.c
index 220cae7bbdbc..dbf8b5735808 100644
--- a/fs/ocfs2/stack_o2cb.c
+++ b/fs/ocfs2/stack_o2cb.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,15 +7,6 @@
6 * Code which interfaces ocfs2 with the o2cb stack. 7 * Code which interfaces ocfs2 with the o2cb stack.
7 * 8 *
8 * Copyright (C) 2007 Oracle. All rights reserved. 9 * Copyright (C) 2007 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation, version 2.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 */ 10 */
19 11
20#include <linux/kernel.h> 12#include <linux/kernel.h>
diff --git a/fs/ocfs2/stack_user.c b/fs/ocfs2/stack_user.c
index d2fb97b173da..7397064c3f35 100644
--- a/fs/ocfs2/stack_user.c
+++ b/fs/ocfs2/stack_user.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,15 +7,6 @@
6 * Code which interfaces ocfs2 with fs/dlm and a userspace stack. 7 * Code which interfaces ocfs2 with fs/dlm and a userspace stack.
7 * 8 *
8 * Copyright (C) 2007 Oracle. All rights reserved. 9 * Copyright (C) 2007 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation, version 2.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 */ 10 */
19 11
20#include <linux/module.h> 12#include <linux/module.h>
diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c
index c4b029c43464..8aa6a667860c 100644
--- a/fs/ocfs2/stackglue.c
+++ b/fs/ocfs2/stackglue.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -7,15 +8,6 @@
7 * cluster stacks. 8 * cluster stacks.
8 * 9 *
9 * Copyright (C) 2007, 2009 Oracle. All rights reserved. 10 * Copyright (C) 2007, 2009 Oracle. All rights reserved.
10 *
11 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public
13 * License as published by the Free Software Foundation, version 2.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 */ 11 */
20 12
21#include <linux/list.h> 13#include <linux/list.h>
diff --git a/fs/ocfs2/stackglue.h b/fs/ocfs2/stackglue.h
index f2dce10fae54..e9d26cbeb3b8 100644
--- a/fs/ocfs2/stackglue.h
+++ b/fs/ocfs2/stackglue.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,15 +7,6 @@
6 * Glue to the underlying cluster stack. 7 * Glue to the underlying cluster stack.
7 * 8 *
8 * Copyright (C) 2007 Oracle. All rights reserved. 9 * Copyright (C) 2007 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation, version 2.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 */ 10 */
19 11
20 12
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
index f7c972fbed6a..69c21a3843af 100644
--- a/fs/ocfs2/suballoc.c
+++ b/fs/ocfs2/suballoc.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -7,21 +8,6 @@
7 * Inspired by ext3 block groups. 8 * Inspired by ext3 block groups.
8 * 9 *
9 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 10 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
10 *
11 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public
13 * License as published by the Free Software Foundation; either
14 * version 2 of the License, or (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public
22 * License along with this program; if not, write to the
23 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24 * Boston, MA 021110-1307, USA.
25 */ 11 */
26 12
27#include <linux/fs.h> 13#include <linux/fs.h>
diff --git a/fs/ocfs2/suballoc.h b/fs/ocfs2/suballoc.h
index 2d2501767c0c..f0a5d30a175d 100644
--- a/fs/ocfs2/suballoc.h
+++ b/fs/ocfs2/suballoc.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Defines sub allocator api 7 * Defines sub allocator api
7 * 8 *
8 * Copyright (C) 2003, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2003, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef _CHAINALLOC_H_ 12#ifndef _CHAINALLOC_H_
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
index 8821bc7b9c72..a201f9780b35 100644
--- a/fs/ocfs2/super.c
+++ b/fs/ocfs2/super.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * load/unload driver, mount/dismount volumes 7 * load/unload driver, mount/dismount volumes
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#include <linux/module.h> 12#include <linux/module.h>
diff --git a/fs/ocfs2/super.h b/fs/ocfs2/super.h
index d4550c8bbc41..76facaf63336 100644
--- a/fs/ocfs2/super.h
+++ b/fs/ocfs2/super.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_SUPER_H 12#ifndef OCFS2_SUPER_H
diff --git a/fs/ocfs2/symlink.h b/fs/ocfs2/symlink.h
index 71ee4245e919..167094d1e5aa 100644
--- a/fs/ocfs2/symlink.h
+++ b/fs/ocfs2/symlink.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_SYMLINK_H 12#ifndef OCFS2_SYMLINK_H
diff --git a/fs/ocfs2/sysfile.c b/fs/ocfs2/sysfile.c
index 5965f3878d49..bb701c4e449f 100644
--- a/fs/ocfs2/sysfile.c
+++ b/fs/ocfs2/sysfile.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Initialize, read, write, etc. system files. 7 * Initialize, read, write, etc. system files.
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#include <linux/fs.h> 12#include <linux/fs.h>
diff --git a/fs/ocfs2/sysfile.h b/fs/ocfs2/sysfile.h
index cc9ea661ffc1..a83dd962fccb 100644
--- a/fs/ocfs2/sysfile.h
+++ b/fs/ocfs2/sysfile.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Function prototypes 7 * Function prototypes
7 * 8 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_SYSFILE_H 12#ifndef OCFS2_SYSFILE_H
diff --git a/fs/ocfs2/uptodate.c b/fs/ocfs2/uptodate.c
index 78f09c76ab3c..580852ba05c4 100644
--- a/fs/ocfs2/uptodate.c
+++ b/fs/ocfs2/uptodate.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -8,21 +9,6 @@
8 * 9 *
9 * Copyright (C) 2002, 2004, 2005 Oracle. All rights reserved. 10 * Copyright (C) 2002, 2004, 2005 Oracle. All rights reserved.
10 * 11 *
11 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public
13 * License as published by the Free Software Foundation; either
14 * version 2 of the License, or (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public
22 * License along with this program; if not, write to the
23 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24 * Boston, MA 021110-1307, USA.
25 *
26 * Standard buffer head caching flags (uptodate, etc) are insufficient 12 * Standard buffer head caching flags (uptodate, etc) are insufficient
27 * in a clustered environment - a buffer may be marked up to date on 13 * in a clustered environment - a buffer may be marked up to date on
28 * our local node but could have been modified by another cluster 14 * our local node but could have been modified by another cluster
diff --git a/fs/ocfs2/uptodate.h b/fs/ocfs2/uptodate.h
index 0d826fe2da0d..77a30cae4879 100644
--- a/fs/ocfs2/uptodate.h
+++ b/fs/ocfs2/uptodate.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -6,21 +7,6 @@
6 * Cluster uptodate tracking 7 * Cluster uptodate tracking
7 * 8 *
8 * Copyright (C) 2002, 2004, 2005 Oracle. All rights reserved. 9 * Copyright (C) 2002, 2004, 2005 Oracle. All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 10 */
25 11
26#ifndef OCFS2_UPTODATE_H 12#ifndef OCFS2_UPTODATE_H
diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
index 3a24ce3deb01..385f3aaa2448 100644
--- a/fs/ocfs2/xattr.c
+++ b/fs/ocfs2/xattr.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
@@ -8,15 +9,6 @@
8 * CREDITS: 9 * CREDITS:
9 * Lots of code in this file is copy from linux/fs/ext3/xattr.c. 10 * Lots of code in this file is copy from linux/fs/ext3/xattr.c.
10 * Copyright (C) 2001-2003 Andreas Gruenbacher, <agruen@suse.de> 11 * Copyright (C) 2001-2003 Andreas Gruenbacher, <agruen@suse.de>
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public
14 * License version 2 as published by the Free Software Foundation.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * General Public License for more details.
20 */ 12 */
21 13
22#include <linux/capability.h> 14#include <linux/capability.h>
diff --git a/fs/ocfs2/xattr.h b/fs/ocfs2/xattr.h
index 1633cc15ea1f..9c80382da1f5 100644
--- a/fs/ocfs2/xattr.h
+++ b/fs/ocfs2/xattr.h
@@ -1,18 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* -*- mode: c; c-basic-offset: 8; -*- 2/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * vim: noexpandtab sw=8 ts=8 sts=0:
3 * 4 *
4 * xattr.h 5 * xattr.h
5 * 6 *
6 * Copyright (C) 2004, 2008 Oracle. All rights reserved. 7 * Copyright (C) 2004, 2008 Oracle. All rights reserved.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License version 2 as published by the Free Software Foundation.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 */ 8 */
17 9
18#ifndef OCFS2_XATTR_H 10#ifndef OCFS2_XATTR_H
diff --git a/fs/omfs/Kconfig b/fs/omfs/Kconfig
index b1b9a0aba6fd..42b2ec35a05b 100644
--- a/fs/omfs/Kconfig
+++ b/fs/omfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config OMFS_FS 2config OMFS_FS
2 tristate "SonicBlue Optimized MPEG File System support" 3 tristate "SonicBlue Optimized MPEG File System support"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/omfs/Makefile b/fs/omfs/Makefile
index 8b82b63f1129..ae16fc3d34a3 100644
--- a/fs/omfs/Makefile
+++ b/fs/omfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1 2
2obj-$(CONFIG_OMFS_FS) += omfs.o 3obj-$(CONFIG_OMFS_FS) += omfs.o
3 4
diff --git a/fs/omfs/dir.c b/fs/omfs/dir.c
index 4bee3a72b9f3..a0f45651f3b7 100644
--- a/fs/omfs/dir.c
+++ b/fs/omfs/dir.c
@@ -1,7 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * OMFS (as used by RIO Karma) directory operations. 3 * OMFS (as used by RIO Karma) directory operations.
3 * Copyright (C) 2005 Bob Copeland <me@bobcopeland.com> 4 * Copyright (C) 2005 Bob Copeland <me@bobcopeland.com>
4 * Released under GPL v2.
5 */ 5 */
6 6
7#include <linux/fs.h> 7#include <linux/fs.h>
diff --git a/fs/omfs/file.c b/fs/omfs/file.c
index bf83e6644333..d640b9388238 100644
--- a/fs/omfs/file.c
+++ b/fs/omfs/file.c
@@ -1,7 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * OMFS (as used by RIO Karma) file operations. 3 * OMFS (as used by RIO Karma) file operations.
3 * Copyright (C) 2005 Bob Copeland <me@bobcopeland.com> 4 * Copyright (C) 2005 Bob Copeland <me@bobcopeland.com>
4 * Released under GPL v2.
5 */ 5 */
6 6
7#include <linux/module.h> 7#include <linux/module.h>
diff --git a/fs/omfs/inode.c b/fs/omfs/inode.c
index ee14af9e26f2..08226a835ec3 100644
--- a/fs/omfs/inode.c
+++ b/fs/omfs/inode.c
@@ -1,7 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Optimized MPEG FS - inode and super operations. 3 * Optimized MPEG FS - inode and super operations.
3 * Copyright (C) 2006 Bob Copeland <me@bobcopeland.com> 4 * Copyright (C) 2006 Bob Copeland <me@bobcopeland.com>
4 * Released under GPL v2.
5 */ 5 */
6#include <linux/module.h> 6#include <linux/module.h>
7#include <linux/sched.h> 7#include <linux/sched.h>
diff --git a/fs/open.c b/fs/open.c
index 9c7d724a6f67..b5b80469b93d 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/open.c 3 * linux/fs/open.c
3 * 4 *
diff --git a/fs/openpromfs/Makefile b/fs/openpromfs/Makefile
index 4563199b8fe6..843c270cd06f 100644
--- a/fs/openpromfs/Makefile
+++ b/fs/openpromfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the Linux Sun Openprom filesystem routines. 3# Makefile for the Linux Sun Openprom filesystem routines.
3# 4#
diff --git a/fs/openpromfs/inode.c b/fs/openpromfs/inode.c
index 46655e454c55..e6cb7689fec4 100644
--- a/fs/openpromfs/inode.c
+++ b/fs/openpromfs/inode.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* inode.c: /proc/openprom handling routines 2/* inode.c: /proc/openprom handling routines
2 * 3 *
3 * Copyright (C) 1996-1999 Jakub Jelinek (jakub@redhat.com) 4 * Copyright (C) 1996-1999 Jakub Jelinek (jakub@redhat.com)
diff --git a/fs/orangefs/Kconfig b/fs/orangefs/Kconfig
index 1554c02489de..890c0ae9a453 100644
--- a/fs/orangefs/Kconfig
+++ b/fs/orangefs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config ORANGEFS_FS 2config ORANGEFS_FS
2 tristate "ORANGEFS (Powered by PVFS) support" 3 tristate "ORANGEFS (Powered by PVFS) support"
3 select FS_POSIX_ACL 4 select FS_POSIX_ACL
diff --git a/fs/orangefs/orangefs-mod.c b/fs/orangefs/orangefs-mod.c
index 82cf8b3e568b..4f2d7ee0d2d1 100644
--- a/fs/orangefs/orangefs-mod.c
+++ b/fs/orangefs/orangefs-mod.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * (C) 2001 Clemson University and The University of Chicago 3 * (C) 2001 Clemson University and The University of Chicago
3 * 4 *
diff --git a/fs/overlayfs/Kconfig b/fs/overlayfs/Kconfig
index 2ef91be2a04e..444e2da4f60e 100644
--- a/fs/overlayfs/Kconfig
+++ b/fs/overlayfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config OVERLAY_FS 2config OVERLAY_FS
2 tristate "Overlay filesystem support" 3 tristate "Overlay filesystem support"
3 select EXPORTFS 4 select EXPORTFS
diff --git a/fs/overlayfs/Makefile b/fs/overlayfs/Makefile
index 46e1ff8ac056..9164c585eb2f 100644
--- a/fs/overlayfs/Makefile
+++ b/fs/overlayfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the overlay filesystem. 3# Makefile for the overlay filesystem.
3# 4#
diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c
index 56feaa739979..b801c6353100 100644
--- a/fs/overlayfs/copy_up.c
+++ b/fs/overlayfs/copy_up.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * 3 *
3 * Copyright (C) 2011 Novell Inc. 4 * Copyright (C) 2011 Novell Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 as published by
7 * the Free Software Foundation.
8 */ 5 */
9 6
10#include <linux/module.h> 7#include <linux/module.h>
@@ -37,7 +34,7 @@ static int ovl_ccup_get(char *buf, const struct kernel_param *param)
37} 34}
38 35
39module_param_call(check_copy_up, ovl_ccup_set, ovl_ccup_get, NULL, 0644); 36module_param_call(check_copy_up, ovl_ccup_set, ovl_ccup_get, NULL, 0644);
40MODULE_PARM_DESC(ovl_check_copy_up, "Obsolete; does nothing"); 37MODULE_PARM_DESC(check_copy_up, "Obsolete; does nothing");
41 38
42int ovl_copy_xattr(struct dentry *old, struct dentry *new) 39int ovl_copy_xattr(struct dentry *old, struct dentry *new)
43{ 40{
diff --git a/fs/overlayfs/dir.c b/fs/overlayfs/dir.c
index 93872bb50230..702aa63f6774 100644
--- a/fs/overlayfs/dir.c
+++ b/fs/overlayfs/dir.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * 3 *
3 * Copyright (C) 2011 Novell Inc. 4 * Copyright (C) 2011 Novell Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 as published by
7 * the Free Software Foundation.
8 */ 5 */
9 6
10#include <linux/fs.h> 7#include <linux/fs.h>
@@ -21,7 +18,7 @@
21 18
22static unsigned short ovl_redirect_max = 256; 19static unsigned short ovl_redirect_max = 256;
23module_param_named(redirect_max, ovl_redirect_max, ushort, 0644); 20module_param_named(redirect_max, ovl_redirect_max, ushort, 0644);
24MODULE_PARM_DESC(ovl_redirect_max, 21MODULE_PARM_DESC(redirect_max,
25 "Maximum length of absolute redirect xattr value"); 22 "Maximum length of absolute redirect xattr value");
26 23
27static int ovl_set_redirect(struct dentry *dentry, bool samedir); 24static int ovl_set_redirect(struct dentry *dentry, bool samedir);
diff --git a/fs/overlayfs/export.c b/fs/overlayfs/export.c
index cc1c9e5606ba..cb8ec1f65c03 100644
--- a/fs/overlayfs/export.c
+++ b/fs/overlayfs/export.c
@@ -1,13 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Overlayfs NFS export support. 3 * Overlayfs NFS export support.
3 * 4 *
4 * Amir Goldstein <amir73il@gmail.com> 5 * Amir Goldstein <amir73il@gmail.com>
5 * 6 *
6 * Copyright (C) 2017-2018 CTERA Networks. All Rights Reserved. 7 * Copyright (C) 2017-2018 CTERA Networks. All Rights Reserved.
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License version 2 as published by
10 * the Free Software Foundation.
11 */ 8 */
12 9
13#include <linux/fs.h> 10#include <linux/fs.h>
diff --git a/fs/overlayfs/file.c b/fs/overlayfs/file.c
index 540a8b845145..e235a635d9ec 100644
--- a/fs/overlayfs/file.c
+++ b/fs/overlayfs/file.c
@@ -1,9 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) 2017 Red Hat, Inc. 3 * Copyright (C) 2017 Red Hat, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License version 2 as published by
6 * the Free Software Foundation.
7 */ 4 */
8 5
9#include <linux/cred.h> 6#include <linux/cred.h>
@@ -409,36 +406,16 @@ static long ovl_real_ioctl(struct file *file, unsigned int cmd,
409 return ret; 406 return ret;
410} 407}
411 408
412static unsigned int ovl_get_inode_flags(struct inode *inode) 409static long ovl_ioctl_set_flags(struct file *file, unsigned int cmd,
413{ 410 unsigned long arg, unsigned int iflags)
414 unsigned int flags = READ_ONCE(inode->i_flags);
415 unsigned int ovl_iflags = 0;
416
417 if (flags & S_SYNC)
418 ovl_iflags |= FS_SYNC_FL;
419 if (flags & S_APPEND)
420 ovl_iflags |= FS_APPEND_FL;
421 if (flags & S_IMMUTABLE)
422 ovl_iflags |= FS_IMMUTABLE_FL;
423 if (flags & S_NOATIME)
424 ovl_iflags |= FS_NOATIME_FL;
425
426 return ovl_iflags;
427}
428
429static long ovl_ioctl_set_flags(struct file *file, unsigned long arg)
430{ 411{
431 long ret; 412 long ret;
432 struct inode *inode = file_inode(file); 413 struct inode *inode = file_inode(file);
433 unsigned int flags; 414 unsigned int old_iflags;
434 unsigned int old_flags;
435 415
436 if (!inode_owner_or_capable(inode)) 416 if (!inode_owner_or_capable(inode))
437 return -EACCES; 417 return -EACCES;
438 418
439 if (get_user(flags, (int __user *) arg))
440 return -EFAULT;
441
442 ret = mnt_want_write_file(file); 419 ret = mnt_want_write_file(file);
443 if (ret) 420 if (ret)
444 return ret; 421 return ret;
@@ -447,8 +424,8 @@ static long ovl_ioctl_set_flags(struct file *file, unsigned long arg)
447 424
448 /* Check the capability before cred override */ 425 /* Check the capability before cred override */
449 ret = -EPERM; 426 ret = -EPERM;
450 old_flags = ovl_get_inode_flags(inode); 427 old_iflags = READ_ONCE(inode->i_flags);
451 if (((flags ^ old_flags) & (FS_APPEND_FL | FS_IMMUTABLE_FL)) && 428 if (((iflags ^ old_iflags) & (S_APPEND | S_IMMUTABLE)) &&
452 !capable(CAP_LINUX_IMMUTABLE)) 429 !capable(CAP_LINUX_IMMUTABLE))
453 goto unlock; 430 goto unlock;
454 431
@@ -456,7 +433,7 @@ static long ovl_ioctl_set_flags(struct file *file, unsigned long arg)
456 if (ret) 433 if (ret)
457 goto unlock; 434 goto unlock;
458 435
459 ret = ovl_real_ioctl(file, FS_IOC_SETFLAGS, arg); 436 ret = ovl_real_ioctl(file, cmd, arg);
460 437
461 ovl_copyflags(ovl_inode_real(inode), inode); 438 ovl_copyflags(ovl_inode_real(inode), inode);
462unlock: 439unlock:
@@ -468,17 +445,79 @@ unlock:
468 445
469} 446}
470 447
448static unsigned int ovl_fsflags_to_iflags(unsigned int flags)
449{
450 unsigned int iflags = 0;
451
452 if (flags & FS_SYNC_FL)
453 iflags |= S_SYNC;
454 if (flags & FS_APPEND_FL)
455 iflags |= S_APPEND;
456 if (flags & FS_IMMUTABLE_FL)
457 iflags |= S_IMMUTABLE;
458 if (flags & FS_NOATIME_FL)
459 iflags |= S_NOATIME;
460
461 return iflags;
462}
463
464static long ovl_ioctl_set_fsflags(struct file *file, unsigned int cmd,
465 unsigned long arg)
466{
467 unsigned int flags;
468
469 if (get_user(flags, (int __user *) arg))
470 return -EFAULT;
471
472 return ovl_ioctl_set_flags(file, cmd, arg,
473 ovl_fsflags_to_iflags(flags));
474}
475
476static unsigned int ovl_fsxflags_to_iflags(unsigned int xflags)
477{
478 unsigned int iflags = 0;
479
480 if (xflags & FS_XFLAG_SYNC)
481 iflags |= S_SYNC;
482 if (xflags & FS_XFLAG_APPEND)
483 iflags |= S_APPEND;
484 if (xflags & FS_XFLAG_IMMUTABLE)
485 iflags |= S_IMMUTABLE;
486 if (xflags & FS_XFLAG_NOATIME)
487 iflags |= S_NOATIME;
488
489 return iflags;
490}
491
492static long ovl_ioctl_set_fsxflags(struct file *file, unsigned int cmd,
493 unsigned long arg)
494{
495 struct fsxattr fa;
496
497 memset(&fa, 0, sizeof(fa));
498 if (copy_from_user(&fa, (void __user *) arg, sizeof(fa)))
499 return -EFAULT;
500
501 return ovl_ioctl_set_flags(file, cmd, arg,
502 ovl_fsxflags_to_iflags(fa.fsx_xflags));
503}
504
471static long ovl_ioctl(struct file *file, unsigned int cmd, unsigned long arg) 505static long ovl_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
472{ 506{
473 long ret; 507 long ret;
474 508
475 switch (cmd) { 509 switch (cmd) {
476 case FS_IOC_GETFLAGS: 510 case FS_IOC_GETFLAGS:
511 case FS_IOC_FSGETXATTR:
477 ret = ovl_real_ioctl(file, cmd, arg); 512 ret = ovl_real_ioctl(file, cmd, arg);
478 break; 513 break;
479 514
480 case FS_IOC_SETFLAGS: 515 case FS_IOC_SETFLAGS:
481 ret = ovl_ioctl_set_flags(file, arg); 516 ret = ovl_ioctl_set_fsflags(file, cmd, arg);
517 break;
518
519 case FS_IOC_FSSETXATTR:
520 ret = ovl_ioctl_set_fsxflags(file, cmd, arg);
482 break; 521 break;
483 522
484 default: 523 default:
diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c
index b48273e846ad..7663aeb85fa3 100644
--- a/fs/overlayfs/inode.c
+++ b/fs/overlayfs/inode.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * 3 *
3 * Copyright (C) 2011 Novell Inc. 4 * Copyright (C) 2011 Novell Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 as published by
7 * the Free Software Foundation.
8 */ 5 */
9 6
10#include <linux/fs.h> 7#include <linux/fs.h>
@@ -553,15 +550,15 @@ static void ovl_fill_inode(struct inode *inode, umode_t mode, dev_t rdev,
553 int xinobits = ovl_xino_bits(inode->i_sb); 550 int xinobits = ovl_xino_bits(inode->i_sb);
554 551
555 /* 552 /*
556 * When NFS export is enabled and d_ino is consistent with st_ino 553 * When d_ino is consistent with st_ino (samefs or i_ino has enough
557 * (samefs or i_ino has enough bits to encode layer), set the same 554 * bits to encode layer), set the same value used for st_ino to i_ino,
558 * value used for d_ino to i_ino, because nfsd readdirplus compares 555 * so inode number exposed via /proc/locks and a like will be
559 * d_ino values to i_ino values of child entries. When called from 556 * consistent with d_ino and st_ino values. An i_ino value inconsistent
557 * with d_ino also causes nfsd readdirplus to fail. When called from
560 * ovl_new_inode(), ino arg is 0, so i_ino will be updated to real 558 * ovl_new_inode(), ino arg is 0, so i_ino will be updated to real
561 * upper inode i_ino on ovl_inode_init() or ovl_inode_update(). 559 * upper inode i_ino on ovl_inode_init() or ovl_inode_update().
562 */ 560 */
563 if (inode->i_sb->s_export_op && 561 if (ovl_same_sb(inode->i_sb) || xinobits) {
564 (ovl_same_sb(inode->i_sb) || xinobits)) {
565 inode->i_ino = ino; 562 inode->i_ino = ino;
566 if (xinobits && fsid && !(ino >> (64 - xinobits))) 563 if (xinobits && fsid && !(ino >> (64 - xinobits)))
567 inode->i_ino |= (unsigned long)fsid << (64 - xinobits); 564 inode->i_ino |= (unsigned long)fsid << (64 - xinobits);
@@ -777,6 +774,54 @@ struct inode *ovl_lookup_inode(struct super_block *sb, struct dentry *real,
777 return inode; 774 return inode;
778} 775}
779 776
777bool ovl_lookup_trap_inode(struct super_block *sb, struct dentry *dir)
778{
779 struct inode *key = d_inode(dir);
780 struct inode *trap;
781 bool res;
782
783 trap = ilookup5(sb, (unsigned long) key, ovl_inode_test, key);
784 if (!trap)
785 return false;
786
787 res = IS_DEADDIR(trap) && !ovl_inode_upper(trap) &&
788 !ovl_inode_lower(trap);
789
790 iput(trap);
791 return res;
792}
793
794/*
795 * Create an inode cache entry for layer root dir, that will intentionally
796 * fail ovl_verify_inode(), so any lookup that will find some layer root
797 * will fail.
798 */
799struct inode *ovl_get_trap_inode(struct super_block *sb, struct dentry *dir)
800{
801 struct inode *key = d_inode(dir);
802 struct inode *trap;
803
804 if (!d_is_dir(dir))
805 return ERR_PTR(-ENOTDIR);
806
807 trap = iget5_locked(sb, (unsigned long) key, ovl_inode_test,
808 ovl_inode_set, key);
809 if (!trap)
810 return ERR_PTR(-ENOMEM);
811
812 if (!(trap->i_state & I_NEW)) {
813 /* Conflicting layer roots? */
814 iput(trap);
815 return ERR_PTR(-ELOOP);
816 }
817
818 trap->i_mode = S_IFDIR;
819 trap->i_flags = S_DEAD;
820 unlock_new_inode(trap);
821
822 return trap;
823}
824
780/* 825/*
781 * Does overlay inode need to be hashed by lower inode? 826 * Does overlay inode need to be hashed by lower inode?
782 */ 827 */
diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c
index efd372312ef1..e9717c2f7d45 100644
--- a/fs/overlayfs/namei.c
+++ b/fs/overlayfs/namei.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) 2011 Novell Inc. 3 * Copyright (C) 2011 Novell Inc.
3 * Copyright (C) 2016 Red Hat, Inc. 4 * Copyright (C) 2016 Red Hat, Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 as published by
7 * the Free Software Foundation.
8 */ 5 */
9 6
10#include <linux/fs.h> 7#include <linux/fs.h>
@@ -18,6 +15,7 @@
18#include "overlayfs.h" 15#include "overlayfs.h"
19 16
20struct ovl_lookup_data { 17struct ovl_lookup_data {
18 struct super_block *sb;
21 struct qstr name; 19 struct qstr name;
22 bool is_dir; 20 bool is_dir;
23 bool opaque; 21 bool opaque;
@@ -244,6 +242,12 @@ static int ovl_lookup_single(struct dentry *base, struct ovl_lookup_data *d,
244 if (!d->metacopy || d->last) 242 if (!d->metacopy || d->last)
245 goto out; 243 goto out;
246 } else { 244 } else {
245 if (ovl_lookup_trap_inode(d->sb, this)) {
246 /* Caught in a trap of overlapping layers */
247 err = -ELOOP;
248 goto out_err;
249 }
250
247 if (last_element) 251 if (last_element)
248 d->is_dir = true; 252 d->is_dir = true;
249 if (d->last) 253 if (d->last)
@@ -819,6 +823,7 @@ struct dentry *ovl_lookup(struct inode *dir, struct dentry *dentry,
819 int err; 823 int err;
820 bool metacopy = false; 824 bool metacopy = false;
821 struct ovl_lookup_data d = { 825 struct ovl_lookup_data d = {
826 .sb = dentry->d_sb,
822 .name = dentry->d_name, 827 .name = dentry->d_name,
823 .is_dir = false, 828 .is_dir = false,
824 .opaque = false, 829 .opaque = false,
diff --git a/fs/overlayfs/overlayfs.h b/fs/overlayfs/overlayfs.h
index d26efed9f80a..6934bcf030f0 100644
--- a/fs/overlayfs/overlayfs.h
+++ b/fs/overlayfs/overlayfs.h
@@ -1,10 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * 3 *
3 * Copyright (C) 2011 Novell Inc. 4 * Copyright (C) 2011 Novell Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 as published by
7 * the Free Software Foundation.
8 */ 5 */
9 6
10#include <linux/kernel.h> 7#include <linux/kernel.h>
@@ -270,6 +267,7 @@ void ovl_clear_flag(unsigned long flag, struct inode *inode);
270bool ovl_test_flag(unsigned long flag, struct inode *inode); 267bool ovl_test_flag(unsigned long flag, struct inode *inode);
271bool ovl_inuse_trylock(struct dentry *dentry); 268bool ovl_inuse_trylock(struct dentry *dentry);
272void ovl_inuse_unlock(struct dentry *dentry); 269void ovl_inuse_unlock(struct dentry *dentry);
270bool ovl_is_inuse(struct dentry *dentry);
273bool ovl_need_index(struct dentry *dentry); 271bool ovl_need_index(struct dentry *dentry);
274int ovl_nlink_start(struct dentry *dentry); 272int ovl_nlink_start(struct dentry *dentry);
275void ovl_nlink_end(struct dentry *dentry); 273void ovl_nlink_end(struct dentry *dentry);
@@ -376,6 +374,8 @@ struct ovl_inode_params {
376struct inode *ovl_new_inode(struct super_block *sb, umode_t mode, dev_t rdev); 374struct inode *ovl_new_inode(struct super_block *sb, umode_t mode, dev_t rdev);
377struct inode *ovl_lookup_inode(struct super_block *sb, struct dentry *real, 375struct inode *ovl_lookup_inode(struct super_block *sb, struct dentry *real,
378 bool is_upper); 376 bool is_upper);
377bool ovl_lookup_trap_inode(struct super_block *sb, struct dentry *dir);
378struct inode *ovl_get_trap_inode(struct super_block *sb, struct dentry *dir);
379struct inode *ovl_get_inode(struct super_block *sb, 379struct inode *ovl_get_inode(struct super_block *sb,
380 struct ovl_inode_params *oip); 380 struct ovl_inode_params *oip);
381static inline void ovl_copyattr(struct inode *from, struct inode *to) 381static inline void ovl_copyattr(struct inode *from, struct inode *to)
diff --git a/fs/overlayfs/ovl_entry.h b/fs/overlayfs/ovl_entry.h
index ec237035333a..28a2d12a1029 100644
--- a/fs/overlayfs/ovl_entry.h
+++ b/fs/overlayfs/ovl_entry.h
@@ -1,11 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * 3 *
3 * Copyright (C) 2011 Novell Inc. 4 * Copyright (C) 2011 Novell Inc.
4 * Copyright (C) 2016 Red Hat, Inc. 5 * Copyright (C) 2016 Red Hat, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 */ 6 */
10 7
11struct ovl_config { 8struct ovl_config {
@@ -29,6 +26,8 @@ struct ovl_sb {
29 26
30struct ovl_layer { 27struct ovl_layer {
31 struct vfsmount *mnt; 28 struct vfsmount *mnt;
29 /* Trap in ovl inode cache */
30 struct inode *trap;
32 struct ovl_sb *fs; 31 struct ovl_sb *fs;
33 /* Index of this layer in fs root (upper idx == 0) */ 32 /* Index of this layer in fs root (upper idx == 0) */
34 int idx; 33 int idx;
@@ -65,6 +64,10 @@ struct ovl_fs {
65 /* Did we take the inuse lock? */ 64 /* Did we take the inuse lock? */
66 bool upperdir_locked; 65 bool upperdir_locked;
67 bool workdir_locked; 66 bool workdir_locked;
67 /* Traps in ovl inode cache */
68 struct inode *upperdir_trap;
69 struct inode *workdir_trap;
70 struct inode *indexdir_trap;
68 /* Inode numbers in all layers do not use the high xino_bits */ 71 /* Inode numbers in all layers do not use the high xino_bits */
69 unsigned int xino_bits; 72 unsigned int xino_bits;
70}; 73};
diff --git a/fs/overlayfs/readdir.c b/fs/overlayfs/readdir.c
index cc8303a806b4..47a91c9733a5 100644
--- a/fs/overlayfs/readdir.c
+++ b/fs/overlayfs/readdir.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * 3 *
3 * Copyright (C) 2011 Novell Inc. 4 * Copyright (C) 2011 Novell Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 as published by
7 * the Free Software Foundation.
8 */ 5 */
9 6
10#include <linux/fs.h> 7#include <linux/fs.h>
diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
index 5ec4fc2f5d7e..b368e2e102fa 100644
--- a/fs/overlayfs/super.c
+++ b/fs/overlayfs/super.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * 3 *
3 * Copyright (C) 2011 Novell Inc. 4 * Copyright (C) 2011 Novell Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 as published by
7 * the Free Software Foundation.
8 */ 5 */
9 6
10#include <uapi/linux/magic.h> 7#include <uapi/linux/magic.h>
@@ -31,29 +28,29 @@ struct ovl_dir_cache;
31 28
32static bool ovl_redirect_dir_def = IS_ENABLED(CONFIG_OVERLAY_FS_REDIRECT_DIR); 29static bool ovl_redirect_dir_def = IS_ENABLED(CONFIG_OVERLAY_FS_REDIRECT_DIR);
33module_param_named(redirect_dir, ovl_redirect_dir_def, bool, 0644); 30module_param_named(redirect_dir, ovl_redirect_dir_def, bool, 0644);
34MODULE_PARM_DESC(ovl_redirect_dir_def, 31MODULE_PARM_DESC(redirect_dir,
35 "Default to on or off for the redirect_dir feature"); 32 "Default to on or off for the redirect_dir feature");
36 33
37static bool ovl_redirect_always_follow = 34static bool ovl_redirect_always_follow =
38 IS_ENABLED(CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW); 35 IS_ENABLED(CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW);
39module_param_named(redirect_always_follow, ovl_redirect_always_follow, 36module_param_named(redirect_always_follow, ovl_redirect_always_follow,
40 bool, 0644); 37 bool, 0644);
41MODULE_PARM_DESC(ovl_redirect_always_follow, 38MODULE_PARM_DESC(redirect_always_follow,
42 "Follow redirects even if redirect_dir feature is turned off"); 39 "Follow redirects even if redirect_dir feature is turned off");
43 40
44static bool ovl_index_def = IS_ENABLED(CONFIG_OVERLAY_FS_INDEX); 41static bool ovl_index_def = IS_ENABLED(CONFIG_OVERLAY_FS_INDEX);
45module_param_named(index, ovl_index_def, bool, 0644); 42module_param_named(index, ovl_index_def, bool, 0644);
46MODULE_PARM_DESC(ovl_index_def, 43MODULE_PARM_DESC(index,
47 "Default to on or off for the inodes index feature"); 44 "Default to on or off for the inodes index feature");
48 45
49static bool ovl_nfs_export_def = IS_ENABLED(CONFIG_OVERLAY_FS_NFS_EXPORT); 46static bool ovl_nfs_export_def = IS_ENABLED(CONFIG_OVERLAY_FS_NFS_EXPORT);
50module_param_named(nfs_export, ovl_nfs_export_def, bool, 0644); 47module_param_named(nfs_export, ovl_nfs_export_def, bool, 0644);
51MODULE_PARM_DESC(ovl_nfs_export_def, 48MODULE_PARM_DESC(nfs_export,
52 "Default to on or off for the NFS export feature"); 49 "Default to on or off for the NFS export feature");
53 50
54static bool ovl_xino_auto_def = IS_ENABLED(CONFIG_OVERLAY_FS_XINO_AUTO); 51static bool ovl_xino_auto_def = IS_ENABLED(CONFIG_OVERLAY_FS_XINO_AUTO);
55module_param_named(xino_auto, ovl_xino_auto_def, bool, 0644); 52module_param_named(xino_auto, ovl_xino_auto_def, bool, 0644);
56MODULE_PARM_DESC(ovl_xino_auto_def, 53MODULE_PARM_DESC(xino_auto,
57 "Auto enable xino feature"); 54 "Auto enable xino feature");
58 55
59static void ovl_entry_stack_free(struct ovl_entry *oe) 56static void ovl_entry_stack_free(struct ovl_entry *oe)
@@ -66,7 +63,7 @@ static void ovl_entry_stack_free(struct ovl_entry *oe)
66 63
67static bool ovl_metacopy_def = IS_ENABLED(CONFIG_OVERLAY_FS_METACOPY); 64static bool ovl_metacopy_def = IS_ENABLED(CONFIG_OVERLAY_FS_METACOPY);
68module_param_named(metacopy, ovl_metacopy_def, bool, 0644); 65module_param_named(metacopy, ovl_metacopy_def, bool, 0644);
69MODULE_PARM_DESC(ovl_metacopy_def, 66MODULE_PARM_DESC(metacopy,
70 "Default to on or off for the metadata only copy up feature"); 67 "Default to on or off for the metadata only copy up feature");
71 68
72static void ovl_dentry_release(struct dentry *dentry) 69static void ovl_dentry_release(struct dentry *dentry)
@@ -215,6 +212,9 @@ static void ovl_free_fs(struct ovl_fs *ofs)
215{ 212{
216 unsigned i; 213 unsigned i;
217 214
215 iput(ofs->indexdir_trap);
216 iput(ofs->workdir_trap);
217 iput(ofs->upperdir_trap);
218 dput(ofs->indexdir); 218 dput(ofs->indexdir);
219 dput(ofs->workdir); 219 dput(ofs->workdir);
220 if (ofs->workdir_locked) 220 if (ofs->workdir_locked)
@@ -223,8 +223,10 @@ static void ovl_free_fs(struct ovl_fs *ofs)
223 if (ofs->upperdir_locked) 223 if (ofs->upperdir_locked)
224 ovl_inuse_unlock(ofs->upper_mnt->mnt_root); 224 ovl_inuse_unlock(ofs->upper_mnt->mnt_root);
225 mntput(ofs->upper_mnt); 225 mntput(ofs->upper_mnt);
226 for (i = 0; i < ofs->numlower; i++) 226 for (i = 0; i < ofs->numlower; i++) {
227 iput(ofs->lower_layers[i].trap);
227 mntput(ofs->lower_layers[i].mnt); 228 mntput(ofs->lower_layers[i].mnt);
229 }
228 for (i = 0; i < ofs->numlowerfs; i++) 230 for (i = 0; i < ofs->numlowerfs; i++)
229 free_anon_bdev(ofs->lower_fs[i].pseudo_dev); 231 free_anon_bdev(ofs->lower_fs[i].pseudo_dev);
230 kfree(ofs->lower_layers); 232 kfree(ofs->lower_layers);
@@ -983,7 +985,26 @@ static const struct xattr_handler *ovl_xattr_handlers[] = {
983 NULL 985 NULL
984}; 986};
985 987
986static int ovl_get_upper(struct ovl_fs *ofs, struct path *upperpath) 988static int ovl_setup_trap(struct super_block *sb, struct dentry *dir,
989 struct inode **ptrap, const char *name)
990{
991 struct inode *trap;
992 int err;
993
994 trap = ovl_get_trap_inode(sb, dir);
995 err = PTR_ERR_OR_ZERO(trap);
996 if (err) {
997 if (err == -ELOOP)
998 pr_err("overlayfs: conflicting %s path\n", name);
999 return err;
1000 }
1001
1002 *ptrap = trap;
1003 return 0;
1004}
1005
1006static int ovl_get_upper(struct super_block *sb, struct ovl_fs *ofs,
1007 struct path *upperpath)
987{ 1008{
988 struct vfsmount *upper_mnt; 1009 struct vfsmount *upper_mnt;
989 int err; 1010 int err;
@@ -1003,6 +1024,11 @@ static int ovl_get_upper(struct ovl_fs *ofs, struct path *upperpath)
1003 if (err) 1024 if (err)
1004 goto out; 1025 goto out;
1005 1026
1027 err = ovl_setup_trap(sb, upperpath->dentry, &ofs->upperdir_trap,
1028 "upperdir");
1029 if (err)
1030 goto out;
1031
1006 upper_mnt = clone_private_mount(upperpath); 1032 upper_mnt = clone_private_mount(upperpath);
1007 err = PTR_ERR(upper_mnt); 1033 err = PTR_ERR(upper_mnt);
1008 if (IS_ERR(upper_mnt)) { 1034 if (IS_ERR(upper_mnt)) {
@@ -1029,7 +1055,8 @@ out:
1029 return err; 1055 return err;
1030} 1056}
1031 1057
1032static int ovl_make_workdir(struct ovl_fs *ofs, struct path *workpath) 1058static int ovl_make_workdir(struct super_block *sb, struct ovl_fs *ofs,
1059 struct path *workpath)
1033{ 1060{
1034 struct vfsmount *mnt = ofs->upper_mnt; 1061 struct vfsmount *mnt = ofs->upper_mnt;
1035 struct dentry *temp; 1062 struct dentry *temp;
@@ -1044,6 +1071,10 @@ static int ovl_make_workdir(struct ovl_fs *ofs, struct path *workpath)
1044 if (!ofs->workdir) 1071 if (!ofs->workdir)
1045 goto out; 1072 goto out;
1046 1073
1074 err = ovl_setup_trap(sb, ofs->workdir, &ofs->workdir_trap, "workdir");
1075 if (err)
1076 goto out;
1077
1047 /* 1078 /*
1048 * Upper should support d_type, else whiteouts are visible. Given 1079 * Upper should support d_type, else whiteouts are visible. Given
1049 * workdir and upper are on same fs, we can do iterate_dir() on 1080 * workdir and upper are on same fs, we can do iterate_dir() on
@@ -1104,7 +1135,8 @@ out:
1104 return err; 1135 return err;
1105} 1136}
1106 1137
1107static int ovl_get_workdir(struct ovl_fs *ofs, struct path *upperpath) 1138static int ovl_get_workdir(struct super_block *sb, struct ovl_fs *ofs,
1139 struct path *upperpath)
1108{ 1140{
1109 int err; 1141 int err;
1110 struct path workpath = { }; 1142 struct path workpath = { };
@@ -1135,19 +1167,16 @@ static int ovl_get_workdir(struct ovl_fs *ofs, struct path *upperpath)
1135 pr_warn("overlayfs: workdir is in-use by another mount, accessing files from both mounts will result in undefined behavior.\n"); 1167 pr_warn("overlayfs: workdir is in-use by another mount, accessing files from both mounts will result in undefined behavior.\n");
1136 } 1168 }
1137 1169
1138 err = ovl_make_workdir(ofs, &workpath); 1170 err = ovl_make_workdir(sb, ofs, &workpath);
1139 if (err)
1140 goto out;
1141 1171
1142 err = 0;
1143out: 1172out:
1144 path_put(&workpath); 1173 path_put(&workpath);
1145 1174
1146 return err; 1175 return err;
1147} 1176}
1148 1177
1149static int ovl_get_indexdir(struct ovl_fs *ofs, struct ovl_entry *oe, 1178static int ovl_get_indexdir(struct super_block *sb, struct ovl_fs *ofs,
1150 struct path *upperpath) 1179 struct ovl_entry *oe, struct path *upperpath)
1151{ 1180{
1152 struct vfsmount *mnt = ofs->upper_mnt; 1181 struct vfsmount *mnt = ofs->upper_mnt;
1153 int err; 1182 int err;
@@ -1166,6 +1195,11 @@ static int ovl_get_indexdir(struct ovl_fs *ofs, struct ovl_entry *oe,
1166 1195
1167 ofs->indexdir = ovl_workdir_create(ofs, OVL_INDEXDIR_NAME, true); 1196 ofs->indexdir = ovl_workdir_create(ofs, OVL_INDEXDIR_NAME, true);
1168 if (ofs->indexdir) { 1197 if (ofs->indexdir) {
1198 err = ovl_setup_trap(sb, ofs->indexdir, &ofs->indexdir_trap,
1199 "indexdir");
1200 if (err)
1201 goto out;
1202
1169 /* 1203 /*
1170 * Verify upper root is exclusively associated with index dir. 1204 * Verify upper root is exclusively associated with index dir.
1171 * Older kernels stored upper fh in "trusted.overlay.origin" 1205 * Older kernels stored upper fh in "trusted.overlay.origin"
@@ -1253,8 +1287,8 @@ static int ovl_get_fsid(struct ovl_fs *ofs, const struct path *path)
1253 return ofs->numlowerfs; 1287 return ofs->numlowerfs;
1254} 1288}
1255 1289
1256static int ovl_get_lower_layers(struct ovl_fs *ofs, struct path *stack, 1290static int ovl_get_lower_layers(struct super_block *sb, struct ovl_fs *ofs,
1257 unsigned int numlower) 1291 struct path *stack, unsigned int numlower)
1258{ 1292{
1259 int err; 1293 int err;
1260 unsigned int i; 1294 unsigned int i;
@@ -1272,16 +1306,28 @@ static int ovl_get_lower_layers(struct ovl_fs *ofs, struct path *stack,
1272 1306
1273 for (i = 0; i < numlower; i++) { 1307 for (i = 0; i < numlower; i++) {
1274 struct vfsmount *mnt; 1308 struct vfsmount *mnt;
1309 struct inode *trap;
1275 int fsid; 1310 int fsid;
1276 1311
1277 err = fsid = ovl_get_fsid(ofs, &stack[i]); 1312 err = fsid = ovl_get_fsid(ofs, &stack[i]);
1278 if (err < 0) 1313 if (err < 0)
1279 goto out; 1314 goto out;
1280 1315
1316 err = -EBUSY;
1317 if (ovl_is_inuse(stack[i].dentry)) {
1318 pr_err("overlayfs: lowerdir is in-use as upperdir/workdir\n");
1319 goto out;
1320 }
1321
1322 err = ovl_setup_trap(sb, stack[i].dentry, &trap, "lowerdir");
1323 if (err)
1324 goto out;
1325
1281 mnt = clone_private_mount(&stack[i]); 1326 mnt = clone_private_mount(&stack[i]);
1282 err = PTR_ERR(mnt); 1327 err = PTR_ERR(mnt);
1283 if (IS_ERR(mnt)) { 1328 if (IS_ERR(mnt)) {
1284 pr_err("overlayfs: failed to clone lowerpath\n"); 1329 pr_err("overlayfs: failed to clone lowerpath\n");
1330 iput(trap);
1285 goto out; 1331 goto out;
1286 } 1332 }
1287 1333
@@ -1291,6 +1337,7 @@ static int ovl_get_lower_layers(struct ovl_fs *ofs, struct path *stack,
1291 */ 1337 */
1292 mnt->mnt_flags |= MNT_READONLY | MNT_NOATIME; 1338 mnt->mnt_flags |= MNT_READONLY | MNT_NOATIME;
1293 1339
1340 ofs->lower_layers[ofs->numlower].trap = trap;
1294 ofs->lower_layers[ofs->numlower].mnt = mnt; 1341 ofs->lower_layers[ofs->numlower].mnt = mnt;
1295 ofs->lower_layers[ofs->numlower].idx = i + 1; 1342 ofs->lower_layers[ofs->numlower].idx = i + 1;
1296 ofs->lower_layers[ofs->numlower].fsid = fsid; 1343 ofs->lower_layers[ofs->numlower].fsid = fsid;
@@ -1385,7 +1432,7 @@ static struct ovl_entry *ovl_get_lowerstack(struct super_block *sb,
1385 goto out_err; 1432 goto out_err;
1386 } 1433 }
1387 1434
1388 err = ovl_get_lower_layers(ofs, stack, numlower); 1435 err = ovl_get_lower_layers(sb, ofs, stack, numlower);
1389 if (err) 1436 if (err)
1390 goto out_err; 1437 goto out_err;
1391 1438
@@ -1417,6 +1464,77 @@ out_err:
1417 goto out; 1464 goto out;
1418} 1465}
1419 1466
1467/*
1468 * Check if this layer root is a descendant of:
1469 * - another layer of this overlayfs instance
1470 * - upper/work dir of any overlayfs instance
1471 */
1472static int ovl_check_layer(struct super_block *sb, struct dentry *dentry,
1473 const char *name)
1474{
1475 struct dentry *next = dentry, *parent;
1476 int err = 0;
1477
1478 if (!dentry)
1479 return 0;
1480
1481 parent = dget_parent(next);
1482
1483 /* Walk back ancestors to root (inclusive) looking for traps */
1484 while (!err && parent != next) {
1485 if (ovl_is_inuse(parent)) {
1486 err = -EBUSY;
1487 pr_err("overlayfs: %s path overlapping in-use upperdir/workdir\n",
1488 name);
1489 } else if (ovl_lookup_trap_inode(sb, parent)) {
1490 err = -ELOOP;
1491 pr_err("overlayfs: overlapping %s path\n", name);
1492 }
1493 next = parent;
1494 parent = dget_parent(next);
1495 dput(next);
1496 }
1497
1498 dput(parent);
1499
1500 return err;
1501}
1502
1503/*
1504 * Check if any of the layers or work dirs overlap.
1505 */
1506static int ovl_check_overlapping_layers(struct super_block *sb,
1507 struct ovl_fs *ofs)
1508{
1509 int i, err;
1510
1511 if (ofs->upper_mnt) {
1512 err = ovl_check_layer(sb, ofs->upper_mnt->mnt_root, "upperdir");
1513 if (err)
1514 return err;
1515
1516 /*
1517 * Checking workbasedir avoids hitting ovl_is_inuse(parent) of
1518 * this instance and covers overlapping work and index dirs,
1519 * unless work or index dir have been moved since created inside
1520 * workbasedir. In that case, we already have their traps in
1521 * inode cache and we will catch that case on lookup.
1522 */
1523 err = ovl_check_layer(sb, ofs->workbasedir, "workdir");
1524 if (err)
1525 return err;
1526 }
1527
1528 for (i = 0; i < ofs->numlower; i++) {
1529 err = ovl_check_layer(sb, ofs->lower_layers[i].mnt->mnt_root,
1530 "lowerdir");
1531 if (err)
1532 return err;
1533 }
1534
1535 return 0;
1536}
1537
1420static int ovl_fill_super(struct super_block *sb, void *data, int silent) 1538static int ovl_fill_super(struct super_block *sb, void *data, int silent)
1421{ 1539{
1422 struct path upperpath = { }; 1540 struct path upperpath = { };
@@ -1456,17 +1574,20 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent)
1456 if (ofs->config.xino != OVL_XINO_OFF) 1574 if (ofs->config.xino != OVL_XINO_OFF)
1457 ofs->xino_bits = BITS_PER_LONG - 32; 1575 ofs->xino_bits = BITS_PER_LONG - 32;
1458 1576
1577 /* alloc/destroy_inode needed for setting up traps in inode cache */
1578 sb->s_op = &ovl_super_operations;
1579
1459 if (ofs->config.upperdir) { 1580 if (ofs->config.upperdir) {
1460 if (!ofs->config.workdir) { 1581 if (!ofs->config.workdir) {
1461 pr_err("overlayfs: missing 'workdir'\n"); 1582 pr_err("overlayfs: missing 'workdir'\n");
1462 goto out_err; 1583 goto out_err;
1463 } 1584 }
1464 1585
1465 err = ovl_get_upper(ofs, &upperpath); 1586 err = ovl_get_upper(sb, ofs, &upperpath);
1466 if (err) 1587 if (err)
1467 goto out_err; 1588 goto out_err;
1468 1589
1469 err = ovl_get_workdir(ofs, &upperpath); 1590 err = ovl_get_workdir(sb, ofs, &upperpath);
1470 if (err) 1591 if (err)
1471 goto out_err; 1592 goto out_err;
1472 1593
@@ -1487,7 +1608,7 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent)
1487 sb->s_flags |= SB_RDONLY; 1608 sb->s_flags |= SB_RDONLY;
1488 1609
1489 if (!(ovl_force_readonly(ofs)) && ofs->config.index) { 1610 if (!(ovl_force_readonly(ofs)) && ofs->config.index) {
1490 err = ovl_get_indexdir(ofs, oe, &upperpath); 1611 err = ovl_get_indexdir(sb, ofs, oe, &upperpath);
1491 if (err) 1612 if (err)
1492 goto out_free_oe; 1613 goto out_free_oe;
1493 1614
@@ -1500,6 +1621,10 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent)
1500 1621
1501 } 1622 }
1502 1623
1624 err = ovl_check_overlapping_layers(sb, ofs);
1625 if (err)
1626 goto out_free_oe;
1627
1503 /* Show index=off in /proc/mounts for forced r/o mount */ 1628 /* Show index=off in /proc/mounts for forced r/o mount */
1504 if (!ofs->indexdir) { 1629 if (!ofs->indexdir) {
1505 ofs->config.index = false; 1630 ofs->config.index = false;
@@ -1521,7 +1646,6 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent)
1521 cap_lower(cred->cap_effective, CAP_SYS_RESOURCE); 1646 cap_lower(cred->cap_effective, CAP_SYS_RESOURCE);
1522 1647
1523 sb->s_magic = OVERLAYFS_SUPER_MAGIC; 1648 sb->s_magic = OVERLAYFS_SUPER_MAGIC;
1524 sb->s_op = &ovl_super_operations;
1525 sb->s_xattr = ovl_xattr_handlers; 1649 sb->s_xattr = ovl_xattr_handlers;
1526 sb->s_fs_info = ofs; 1650 sb->s_fs_info = ofs;
1527 sb->s_flags |= SB_POSIXACL; 1651 sb->s_flags |= SB_POSIXACL;
diff --git a/fs/overlayfs/util.c b/fs/overlayfs/util.c
index 4035e640f402..f5678a3f8350 100644
--- a/fs/overlayfs/util.c
+++ b/fs/overlayfs/util.c
@@ -1,10 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) 2011 Novell Inc. 3 * Copyright (C) 2011 Novell Inc.
3 * Copyright (C) 2016 Red Hat, Inc. 4 * Copyright (C) 2016 Red Hat, Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 as published by
7 * the Free Software Foundation.
8 */ 5 */
9 6
10#include <linux/fs.h> 7#include <linux/fs.h>
@@ -652,6 +649,18 @@ void ovl_inuse_unlock(struct dentry *dentry)
652 } 649 }
653} 650}
654 651
652bool ovl_is_inuse(struct dentry *dentry)
653{
654 struct inode *inode = d_inode(dentry);
655 bool inuse;
656
657 spin_lock(&inode->i_lock);
658 inuse = (inode->i_state & I_OVL_INUSE);
659 spin_unlock(&inode->i_lock);
660
661 return inuse;
662}
663
655/* 664/*
656 * Does this overlay dentry need to be indexed on copy up? 665 * Does this overlay dentry need to be indexed on copy up?
657 */ 666 */
diff --git a/fs/pnode.c b/fs/pnode.c
index 7ea6cfb65077..49f6d7ff2139 100644
--- a/fs/pnode.c
+++ b/fs/pnode.c
@@ -1,10 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/pnode.c 3 * linux/fs/pnode.c
3 * 4 *
4 * (C) Copyright IBM Corporation 2005. 5 * (C) Copyright IBM Corporation 2005.
5 * Released under GPL v2.
6 * Author : Ram Pai (linuxram@us.ibm.com) 6 * Author : Ram Pai (linuxram@us.ibm.com)
7 *
8 */ 7 */
9#include <linux/mnt_namespace.h> 8#include <linux/mnt_namespace.h>
10#include <linux/mount.h> 9#include <linux/mount.h>
@@ -262,7 +261,6 @@ static int propagate_one(struct mount *m)
262 child = copy_tree(last_source, last_source->mnt.mnt_root, type); 261 child = copy_tree(last_source, last_source->mnt.mnt_root, type);
263 if (IS_ERR(child)) 262 if (IS_ERR(child))
264 return PTR_ERR(child); 263 return PTR_ERR(child);
265 child->mnt.mnt_flags &= ~MNT_LOCKED;
266 mnt_set_mountpoint(m, mp, child); 264 mnt_set_mountpoint(m, mp, child);
267 last_dest = m; 265 last_dest = m;
268 last_source = child; 266 last_source = child;
diff --git a/fs/pnode.h b/fs/pnode.h
index 3960a83666cf..49a058c73e4c 100644
--- a/fs/pnode.h
+++ b/fs/pnode.h
@@ -1,9 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * linux/fs/pnode.h 3 * linux/fs/pnode.h
3 * 4 *
4 * (C) Copyright IBM Corporation 2005. 5 * (C) Copyright IBM Corporation 2005.
5 * Released under GPL v2.
6 *
7 */ 6 */
8#ifndef _LINUX_PNODE_H 7#ifndef _LINUX_PNODE_H
9#define _LINUX_PNODE_H 8#define _LINUX_PNODE_H
diff --git a/fs/posix_acl.c b/fs/posix_acl.c
index 2fd0fde16fe1..84ad1c90d535 100644
--- a/fs/posix_acl.c
+++ b/fs/posix_acl.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) 2002,2003 by Andreas Gruenbacher <a.gruenbacher@computer.org> 3 * Copyright (C) 2002,2003 by Andreas Gruenbacher <a.gruenbacher@computer.org>
3 * 4 *
diff --git a/fs/proc/Kconfig b/fs/proc/Kconfig
index 817c02b13b1d..62ee41b4bbd0 100644
--- a/fs/proc/Kconfig
+++ b/fs/proc/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config PROC_FS 2config PROC_FS
2 bool "/proc file system support" if EXPERT 3 bool "/proc file system support" if EXPERT
3 default y 4 default y
diff --git a/fs/proc/array.c b/fs/proc/array.c
index 2edbb657f859..55180501b915 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -462,7 +462,7 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
462 * a program is not able to use ptrace(2) in that case. It is 462 * a program is not able to use ptrace(2) in that case. It is
463 * safe because the task has stopped executing permanently. 463 * safe because the task has stopped executing permanently.
464 */ 464 */
465 if (permitted && (task->flags & PF_DUMPCORE)) { 465 if (permitted && (task->flags & (PF_EXITING|PF_DUMPCORE))) {
466 if (try_get_task_stack(task)) { 466 if (try_get_task_stack(task)) {
467 eip = KSTK_EIP(task); 467 eip = KSTK_EIP(task);
468 esp = KSTK_ESP(task); 468 esp = KSTK_ESP(task);
diff --git a/fs/proc/base.c b/fs/proc/base.c
index 9c8ca6cd3ce4..255f6754c70d 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -3077,8 +3077,7 @@ static const struct file_operations proc_tgid_base_operations = {
3077 3077
3078struct pid *tgid_pidfd_to_pid(const struct file *file) 3078struct pid *tgid_pidfd_to_pid(const struct file *file)
3079{ 3079{
3080 if (!d_is_dir(file->f_path.dentry) || 3080 if (file->f_op != &proc_tgid_base_operations)
3081 (file->f_op != &proc_tgid_base_operations))
3082 return ERR_PTR(-EBADF); 3081 return ERR_PTR(-EBADF);
3083 3082
3084 return proc_pid(file_inode(file)); 3083 return proc_pid(file_inode(file));
diff --git a/fs/proc/consoles.c b/fs/proc/consoles.c
index 954caf0b7fee..dfe6ce3505ce 100644
--- a/fs/proc/consoles.c
+++ b/fs/proc/consoles.c
@@ -1,7 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (c) 2010 Werner Fink, Jiri Slaby 3 * Copyright (c) 2010 Werner Fink, Jiri Slaby
3 *
4 * Licensed under GPLv2
5 */ 4 */
6 5
7#include <linux/console.h> 6#include <linux/console.h>
diff --git a/fs/proc/generic.c b/fs/proc/generic.c
index e39bac94dead..64e9ee1b129e 100644
--- a/fs/proc/generic.c
+++ b/fs/proc/generic.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * proc/fs/generic.c --- generic routines for the proc-fs 3 * proc/fs/generic.c --- generic routines for the proc-fs
3 * 4 *
diff --git a/fs/proc/internal.h b/fs/proc/internal.h
index d1671e97f7fe..cd0c8d5ce9a1 100644
--- a/fs/proc/internal.h
+++ b/fs/proc/internal.h
@@ -1,12 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* Internal procfs definitions 2/* Internal procfs definitions
2 * 3 *
3 * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/proc_fs.h> 8#include <linux/proc_fs.h>
diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
index 3b63be64e436..14c2badb8fd9 100644
--- a/fs/proc/nommu.c
+++ b/fs/proc/nommu.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* nommu.c: mmu-less memory info files 2/* nommu.c: mmu-less memory info files
2 * 3 *
3 * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/init.h> 8#include <linux/init.h>
diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c
index a7b12435519e..76ae278df1c4 100644
--- a/fs/proc/proc_net.c
+++ b/fs/proc/proc_net.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/proc/net.c 3 * linux/fs/proc/net.c
3 * 4 *
diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c
index 3fe90443c1bb..7bb96fdd38ad 100644
--- a/fs/proc/vmcore.c
+++ b/fs/proc/vmcore.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/proc/vmcore.c Interface for accessing the crash 3 * fs/proc/vmcore.c Interface for accessing the crash
3 * dump from the system's previous life. 4 * dump from the system's previous life.
diff --git a/fs/pstore/Kconfig b/fs/pstore/Kconfig
index 0d19d191ae70..8f0369aad22a 100644
--- a/fs/pstore/Kconfig
+++ b/fs/pstore/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config PSTORE 2config PSTORE
2 tristate "Persistent store support" 3 tristate "Persistent store support"
3 select CRYPTO if PSTORE_COMPRESS 4 select CRYPTO if PSTORE_COMPRESS
diff --git a/fs/pstore/ftrace.c b/fs/pstore/ftrace.c
index b8a0931568f8..8e0a17ce3180 100644
--- a/fs/pstore/ftrace.c
+++ b/fs/pstore/ftrace.c
@@ -1,14 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright 2012 Google, Inc. 3 * Copyright 2012 Google, Inc.
3 *
4 * This software is licensed under the terms of the GNU General Public
5 * License version 2, as published by the Free Software Foundation, and
6 * may be copied, distributed, and modified under those terms.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */ 4 */
13 5
14#include <linux/kernel.h> 6#include <linux/kernel.h>
diff --git a/fs/pstore/inode.c b/fs/pstore/inode.c
index 29e94e0b6d73..89a80b568a17 100644
--- a/fs/pstore/inode.c
+++ b/fs/pstore/inode.c
@@ -1,20 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Persistent Storage - ramfs parts. 3 * Persistent Storage - ramfs parts.
3 * 4 *
4 * Copyright (C) 2010 Intel Corporation <tony.luck@intel.com> 5 * Copyright (C) 2010 Intel Corporation <tony.luck@intel.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 6 */
19 7
20#include <linux/module.h> 8#include <linux/module.h>
diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c
index 75887a269b64..3d7024662d29 100644
--- a/fs/pstore/platform.c
+++ b/fs/pstore/platform.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Persistent Storage - platform driver interface parts. 3 * Persistent Storage - platform driver interface parts.
3 * 4 *
4 * Copyright (C) 2007-2008 Google, Inc. 5 * Copyright (C) 2007-2008 Google, Inc.
5 * Copyright (C) 2010 Intel Corporation <tony.luck@intel.com> 6 * Copyright (C) 2010 Intel Corporation <tony.luck@intel.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */ 7 */
20 8
21#define pr_fmt(fmt) "pstore: " fmt 9#define pr_fmt(fmt) "pstore: " fmt
@@ -347,8 +335,10 @@ static void allocate_buf_for_compression(void)
347 335
348static void free_buf_for_compression(void) 336static void free_buf_for_compression(void)
349{ 337{
350 if (IS_ENABLED(CONFIG_PSTORE_COMPRESS) && tfm) 338 if (IS_ENABLED(CONFIG_PSTORE_COMPRESS) && tfm) {
351 crypto_free_comp(tfm); 339 crypto_free_comp(tfm);
340 tfm = NULL;
341 }
352 kfree(big_oops_buf); 342 kfree(big_oops_buf);
353 big_oops_buf = NULL; 343 big_oops_buf = NULL;
354 big_oops_buf_sz = 0; 344 big_oops_buf_sz = 0;
@@ -606,7 +596,8 @@ int pstore_register(struct pstore_info *psi)
606 return -EINVAL; 596 return -EINVAL;
607 } 597 }
608 598
609 allocate_buf_for_compression(); 599 if (psi->flags & PSTORE_FLAGS_DMESG)
600 allocate_buf_for_compression();
610 601
611 if (pstore_is_mounted()) 602 if (pstore_is_mounted())
612 pstore_get_records(0); 603 pstore_get_records(0);
diff --git a/fs/pstore/pmsg.c b/fs/pstore/pmsg.c
index 97fcef74e5af..d8542ec2f38c 100644
--- a/fs/pstore/pmsg.c
+++ b/fs/pstore/pmsg.c
@@ -1,14 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright 2014 Google, Inc. 3 * Copyright 2014 Google, Inc.
3 *
4 * This software is licensed under the terms of the GNU General Public
5 * License version 2, as published by the Free Software Foundation, and
6 * may be copied, distributed, and modified under those terms.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */ 4 */
13 5
14#include <linux/cdev.h> 6#include <linux/cdev.h>
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c
index c5c685589e36..5b7709894415 100644
--- a/fs/pstore/ram.c
+++ b/fs/pstore/ram.c
@@ -1,23 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * RAM Oops/Panic logger 3 * RAM Oops/Panic logger
3 * 4 *
4 * Copyright (C) 2010 Marco Stornelli <marco.stornelli@gmail.com> 5 * Copyright (C) 2010 Marco Stornelli <marco.stornelli@gmail.com>
5 * Copyright (C) 2011 Kees Cook <keescook@chromium.org> 6 * Copyright (C) 2011 Kees Cook <keescook@chromium.org>
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * version 2 as published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
19 * 02110-1301 USA
20 *
21 */ 7 */
22 8
23#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 9#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@@ -800,26 +786,36 @@ static int ramoops_probe(struct platform_device *pdev)
800 786
801 cxt->pstore.data = cxt; 787 cxt->pstore.data = cxt;
802 /* 788 /*
803 * Since bufsize is only used for dmesg crash dumps, it 789 * Prepare frontend flags based on which areas are initialized.
804 * must match the size of the dprz record (after PRZ header 790 * For ramoops_init_przs() cases, the "max count" variable tells
805 * and ECC bytes have been accounted for). 791 * if there are regions present. For ramoops_init_prz() cases,
792 * the single region size is how to check.
806 */ 793 */
807 cxt->pstore.bufsize = cxt->dprzs[0]->buffer_size; 794 cxt->pstore.flags = 0;
808 cxt->pstore.buf = kzalloc(cxt->pstore.bufsize, GFP_KERNEL); 795 if (cxt->max_dump_cnt)
809 if (!cxt->pstore.buf) { 796 cxt->pstore.flags |= PSTORE_FLAGS_DMESG;
810 pr_err("cannot allocate pstore crash dump buffer\n");
811 err = -ENOMEM;
812 goto fail_clear;
813 }
814
815 cxt->pstore.flags = PSTORE_FLAGS_DMESG;
816 if (cxt->console_size) 797 if (cxt->console_size)
817 cxt->pstore.flags |= PSTORE_FLAGS_CONSOLE; 798 cxt->pstore.flags |= PSTORE_FLAGS_CONSOLE;
818 if (cxt->ftrace_size) 799 if (cxt->max_ftrace_cnt)
819 cxt->pstore.flags |= PSTORE_FLAGS_FTRACE; 800 cxt->pstore.flags |= PSTORE_FLAGS_FTRACE;
820 if (cxt->pmsg_size) 801 if (cxt->pmsg_size)
821 cxt->pstore.flags |= PSTORE_FLAGS_PMSG; 802 cxt->pstore.flags |= PSTORE_FLAGS_PMSG;
822 803
804 /*
805 * Since bufsize is only used for dmesg crash dumps, it
806 * must match the size of the dprz record (after PRZ header
807 * and ECC bytes have been accounted for).
808 */
809 if (cxt->pstore.flags & PSTORE_FLAGS_DMESG) {
810 cxt->pstore.bufsize = cxt->dprzs[0]->buffer_size;
811 cxt->pstore.buf = kzalloc(cxt->pstore.bufsize, GFP_KERNEL);
812 if (!cxt->pstore.buf) {
813 pr_err("cannot allocate pstore crash dump buffer\n");
814 err = -ENOMEM;
815 goto fail_clear;
816 }
817 }
818
823 err = pstore_register(&cxt->pstore); 819 err = pstore_register(&cxt->pstore);
824 if (err) { 820 if (err) {
825 pr_err("registering with pstore failed\n"); 821 pr_err("registering with pstore failed\n");
diff --git a/fs/pstore/ram_core.c b/fs/pstore/ram_core.c
index f375c0735351..8823f65888f0 100644
--- a/fs/pstore/ram_core.c
+++ b/fs/pstore/ram_core.c
@@ -1,15 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (C) 2012 Google, Inc. 3 * Copyright (C) 2012 Google, Inc.
3 *
4 * This software is licensed under the terms of the GNU General Public
5 * License version 2, as published by the Free Software Foundation, and
6 * may be copied, distributed, and modified under those terms.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 */ 4 */
14 5
15#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 6#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/fs/qnx4/Kconfig b/fs/qnx4/Kconfig
index 5f6089994042..45b5b98376c4 100644
--- a/fs/qnx4/Kconfig
+++ b/fs/qnx4/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config QNX4FS_FS 2config QNX4FS_FS
2 tristate "QNX4 file system support (read only)" 3 tristate "QNX4 file system support (read only)"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/qnx4/Makefile b/fs/qnx4/Makefile
index 4a283b3f87f8..42d4fc263a3d 100644
--- a/fs/qnx4/Makefile
+++ b/fs/qnx4/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the linux qnx4-filesystem routines. 3# Makefile for the linux qnx4-filesystem routines.
3# 4#
diff --git a/fs/qnx4/inode.c b/fs/qnx4/inode.c
index 48c70aa4a3ec..922d083bbc7c 100644
--- a/fs/qnx4/inode.c
+++ b/fs/qnx4/inode.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * QNX4 file system, Linux implementation. 3 * QNX4 file system, Linux implementation.
3 * 4 *
diff --git a/fs/qnx6/Kconfig b/fs/qnx6/Kconfig
index edbba5c17cc8..6a9d6bce1586 100644
--- a/fs/qnx6/Kconfig
+++ b/fs/qnx6/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config QNX6FS_FS 2config QNX6FS_FS
2 tristate "QNX6 file system support (read only)" 3 tristate "QNX6 file system support (read only)"
3 depends on BLOCK && CRC32 4 depends on BLOCK && CRC32
diff --git a/fs/qnx6/Makefile b/fs/qnx6/Makefile
index 5e6bae6fae50..bd4e6c8efbc6 100644
--- a/fs/qnx6/Makefile
+++ b/fs/qnx6/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the linux qnx4-filesystem routines. 3# Makefile for the linux qnx4-filesystem routines.
3# 4#
diff --git a/fs/qnx6/inode.c b/fs/qnx6/inode.c
index 59cf45f6be49..0f8b0ff1ba43 100644
--- a/fs/qnx6/inode.c
+++ b/fs/qnx6/inode.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * QNX6 file system, Linux implementation. 3 * QNX6 file system, Linux implementation.
3 * 4 *
diff --git a/fs/quota/Kconfig b/fs/quota/Kconfig
index 4a09975aac90..7218314ca13f 100644
--- a/fs/quota/Kconfig
+++ b/fs/quota/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Quota configuration 3# Quota configuration
3# 4#
diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
index 9ad72ea7f71f..58f15a083dd1 100644
--- a/fs/quota/dquot.c
+++ b/fs/quota/dquot.c
@@ -1996,8 +1996,8 @@ int __dquot_transfer(struct inode *inode, struct dquot **transfer_to)
1996 &warn_to[cnt]); 1996 &warn_to[cnt]);
1997 if (ret) 1997 if (ret)
1998 goto over_quota; 1998 goto over_quota;
1999 ret = dquot_add_space(transfer_to[cnt], cur_space, rsv_space, 0, 1999 ret = dquot_add_space(transfer_to[cnt], cur_space, rsv_space,
2000 &warn_to[cnt]); 2000 DQUOT_SPACE_WARN, &warn_to[cnt]);
2001 if (ret) { 2001 if (ret) {
2002 spin_lock(&transfer_to[cnt]->dq_dqb_lock); 2002 spin_lock(&transfer_to[cnt]->dq_dqb_lock);
2003 dquot_decr_inodes(transfer_to[cnt], inode_usage); 2003 dquot_decr_inodes(transfer_to[cnt], inode_usage);
diff --git a/fs/quota/quota_tree.c b/fs/quota/quota_tree.c
index bb3f59bcfcf5..a6f856f341dc 100644
--- a/fs/quota/quota_tree.c
+++ b/fs/quota/quota_tree.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * vfsv0 quota IO operations on file 3 * vfsv0 quota IO operations on file
3 */ 4 */
diff --git a/fs/quota/quota_v1.c b/fs/quota/quota_v1.c
index 9f2b2573b83c..c740e5572eb8 100644
--- a/fs/quota/quota_v1.c
+++ b/fs/quota/quota_v1.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1#include <linux/errno.h> 2#include <linux/errno.h>
2#include <linux/fs.h> 3#include <linux/fs.h>
3#include <linux/quota.h> 4#include <linux/quota.h>
diff --git a/fs/quota/quota_v2.c b/fs/quota/quota_v2.c
index 3c30034e733f..53429c29c784 100644
--- a/fs/quota/quota_v2.c
+++ b/fs/quota/quota_v2.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * vfsv0 quota IO operations on file 3 * vfsv0 quota IO operations on file
3 */ 4 */
diff --git a/fs/ramfs/Makefile b/fs/ramfs/Makefile
index c71e65dcad25..d1198adb562e 100644
--- a/fs/ramfs/Makefile
+++ b/fs/ramfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the linux ramfs routines. 3# Makefile for the linux ramfs routines.
3# 4#
diff --git a/fs/ramfs/file-nommu.c b/fs/ramfs/file-nommu.c
index 3ac1f2387083..414695454956 100644
--- a/fs/ramfs/file-nommu.c
+++ b/fs/ramfs/file-nommu.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* file-nommu.c: no-MMU version of ramfs 2/* file-nommu.c: no-MMU version of ramfs
2 * 3 *
3 * Copyright (C) 2005 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2005 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/module.h> 8#include <linux/module.h>
diff --git a/fs/ramfs/internal.h b/fs/ramfs/internal.h
index a9d8ae88fa15..3257fc1809d9 100644
--- a/fs/ramfs/internal.h
+++ b/fs/ramfs/internal.h
@@ -1,12 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* internal.h: ramfs internal definitions 2/* internal.h: ramfs internal definitions
2 * 3 *
3 * Copyright (C) 2005 Red Hat, Inc. All Rights Reserved. 4 * Copyright (C) 2005 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12 8
diff --git a/fs/reiserfs/Kconfig b/fs/reiserfs/Kconfig
index 86e71c0caf48..8fd54ed8f844 100644
--- a/fs/reiserfs/Kconfig
+++ b/fs/reiserfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config REISERFS_FS 2config REISERFS_FS
2 tristate "Reiserfs support" 3 tristate "Reiserfs support"
3 select CRC32 4 select CRC32
diff --git a/fs/romfs/Kconfig b/fs/romfs/Kconfig
index ce2d6bcc6266..ad4c45788896 100644
--- a/fs/romfs/Kconfig
+++ b/fs/romfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config ROMFS_FS 2config ROMFS_FS
2 tristate "ROM file system support" 3 tristate "ROM file system support"
3 depends on BLOCK || MTD 4 depends on BLOCK || MTD
diff --git a/fs/romfs/internal.h b/fs/romfs/internal.h
index 95217b830118..e90df22bdc82 100644
--- a/fs/romfs/internal.h
+++ b/fs/romfs/internal.h
@@ -1,12 +1,8 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* RomFS internal definitions 2/* RomFS internal definitions
2 * 3 *
3 * Copyright © 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright © 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/romfs_fs.h> 8#include <linux/romfs_fs.h>
diff --git a/fs/romfs/mmap-nommu.c b/fs/romfs/mmap-nommu.c
index 1118a0dc6b45..2c4a23113fb5 100644
--- a/fs/romfs/mmap-nommu.c
+++ b/fs/romfs/mmap-nommu.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* NOMMU mmap support for RomFS on MTD devices 2/* NOMMU mmap support for RomFS on MTD devices
2 * 3 *
3 * Copyright © 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright © 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/mm.h> 8#include <linux/mm.h>
diff --git a/fs/romfs/storage.c b/fs/romfs/storage.c
index f86f51f99ace..6b2b4362089e 100644
--- a/fs/romfs/storage.c
+++ b/fs/romfs/storage.c
@@ -1,12 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* RomFS storage access routines 2/* RomFS storage access routines
2 * 3 *
3 * Copyright © 2007 Red Hat, Inc. All Rights Reserved. 4 * Copyright © 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 5 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */ 6 */
11 7
12#include <linux/fs.h> 8#include <linux/fs.h>
diff --git a/fs/select.c b/fs/select.c
index 6cbc9ff56ba0..a4d8f6e8b63c 100644
--- a/fs/select.c
+++ b/fs/select.c
@@ -758,10 +758,9 @@ static long do_pselect(int n, fd_set __user *inp, fd_set __user *outp,
758 return ret; 758 return ret;
759 759
760 ret = core_sys_select(n, inp, outp, exp, to); 760 ret = core_sys_select(n, inp, outp, exp, to);
761 restore_user_sigmask(sigmask, &sigsaved, ret == -ERESTARTNOHAND);
761 ret = poll_select_copy_remaining(&end_time, tsp, type, ret); 762 ret = poll_select_copy_remaining(&end_time, tsp, type, ret);
762 763
763 restore_user_sigmask(sigmask, &sigsaved);
764
765 return ret; 764 return ret;
766} 765}
767 766
@@ -1106,8 +1105,7 @@ SYSCALL_DEFINE5(ppoll, struct pollfd __user *, ufds, unsigned int, nfds,
1106 1105
1107 ret = do_sys_poll(ufds, nfds, to); 1106 ret = do_sys_poll(ufds, nfds, to);
1108 1107
1109 restore_user_sigmask(sigmask, &sigsaved); 1108 restore_user_sigmask(sigmask, &sigsaved, ret == -EINTR);
1110
1111 /* We can restart this syscall, usually */ 1109 /* We can restart this syscall, usually */
1112 if (ret == -EINTR) 1110 if (ret == -EINTR)
1113 ret = -ERESTARTNOHAND; 1111 ret = -ERESTARTNOHAND;
@@ -1142,8 +1140,7 @@ SYSCALL_DEFINE5(ppoll_time32, struct pollfd __user *, ufds, unsigned int, nfds,
1142 1140
1143 ret = do_sys_poll(ufds, nfds, to); 1141 ret = do_sys_poll(ufds, nfds, to);
1144 1142
1145 restore_user_sigmask(sigmask, &sigsaved); 1143 restore_user_sigmask(sigmask, &sigsaved, ret == -EINTR);
1146
1147 /* We can restart this syscall, usually */ 1144 /* We can restart this syscall, usually */
1148 if (ret == -EINTR) 1145 if (ret == -EINTR)
1149 ret = -ERESTARTNOHAND; 1146 ret = -ERESTARTNOHAND;
@@ -1350,10 +1347,9 @@ static long do_compat_pselect(int n, compat_ulong_t __user *inp,
1350 return ret; 1347 return ret;
1351 1348
1352 ret = compat_core_sys_select(n, inp, outp, exp, to); 1349 ret = compat_core_sys_select(n, inp, outp, exp, to);
1350 restore_user_sigmask(sigmask, &sigsaved, ret == -ERESTARTNOHAND);
1353 ret = poll_select_copy_remaining(&end_time, tsp, type, ret); 1351 ret = poll_select_copy_remaining(&end_time, tsp, type, ret);
1354 1352
1355 restore_user_sigmask(sigmask, &sigsaved);
1356
1357 return ret; 1353 return ret;
1358} 1354}
1359 1355
@@ -1425,8 +1421,7 @@ COMPAT_SYSCALL_DEFINE5(ppoll_time32, struct pollfd __user *, ufds,
1425 1421
1426 ret = do_sys_poll(ufds, nfds, to); 1422 ret = do_sys_poll(ufds, nfds, to);
1427 1423
1428 restore_user_sigmask(sigmask, &sigsaved); 1424 restore_user_sigmask(sigmask, &sigsaved, ret == -EINTR);
1429
1430 /* We can restart this syscall, usually */ 1425 /* We can restart this syscall, usually */
1431 if (ret == -EINTR) 1426 if (ret == -EINTR)
1432 ret = -ERESTARTNOHAND; 1427 ret = -ERESTARTNOHAND;
@@ -1461,8 +1456,7 @@ COMPAT_SYSCALL_DEFINE5(ppoll_time64, struct pollfd __user *, ufds,
1461 1456
1462 ret = do_sys_poll(ufds, nfds, to); 1457 ret = do_sys_poll(ufds, nfds, to);
1463 1458
1464 restore_user_sigmask(sigmask, &sigsaved); 1459 restore_user_sigmask(sigmask, &sigsaved, ret == -EINTR);
1465
1466 /* We can restart this syscall, usually */ 1460 /* We can restart this syscall, usually */
1467 if (ret == -EINTR) 1461 if (ret == -EINTR)
1468 ret = -ERESTARTNOHAND; 1462 ret = -ERESTARTNOHAND;
diff --git a/fs/splice.c b/fs/splice.c
index 25212dcca2df..14cb602d9a2f 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * "splice": joining two ropes together by interweaving their strands. 3 * "splice": joining two ropes together by interweaving their strands.
3 * 4 *
diff --git a/fs/squashfs/Kconfig b/fs/squashfs/Kconfig
index 1adb3346b9d6..916e78fabcaa 100644
--- a/fs/squashfs/Kconfig
+++ b/fs/squashfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config SQUASHFS 2config SQUASHFS
2 tristate "SquashFS 4.0 - Squashed file system support" 3 tristate "SquashFS 4.0 - Squashed file system support"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/squashfs/block.c b/fs/squashfs/block.c
index f098b9f1c396..4f9b9fb59362 100644
--- a/fs/squashfs/block.c
+++ b/fs/squashfs/block.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * block.c 8 * block.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/cache.c b/fs/squashfs/cache.c
index 0839efa720b3..5062326d0efb 100644
--- a/fs/squashfs/cache.c
+++ b/fs/squashfs/cache.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * cache.c 8 * cache.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/decompressor.c b/fs/squashfs/decompressor.c
index 836639810ea0..d57bef91ab08 100644
--- a/fs/squashfs/decompressor.c
+++ b/fs/squashfs/decompressor.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * decompressor.c 8 * decompressor.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/decompressor.h b/fs/squashfs/decompressor.h
index 0f5a8e4e58da..ec8617523e56 100644
--- a/fs/squashfs/decompressor.h
+++ b/fs/squashfs/decompressor.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1#ifndef DECOMPRESSOR_H 2#ifndef DECOMPRESSOR_H
2#define DECOMPRESSOR_H 3#define DECOMPRESSOR_H
3/* 4/*
@@ -6,20 +7,6 @@
6 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 7 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
7 * Phillip Lougher <phillip@squashfs.org.uk> 8 * Phillip Lougher <phillip@squashfs.org.uk>
8 * 9 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version 2,
12 * or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 *
23 * decompressor.h 10 * decompressor.h
24 */ 11 */
25 12
diff --git a/fs/squashfs/decompressor_multi.c b/fs/squashfs/decompressor_multi.c
index d6008a636479..c181dee235bb 100644
--- a/fs/squashfs/decompressor_multi.c
+++ b/fs/squashfs/decompressor_multi.c
@@ -1,9 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (c) 2013 3 * Copyright (c) 2013
3 * Minchan Kim <minchan@kernel.org> 4 * Minchan Kim <minchan@kernel.org>
4 *
5 * This work is licensed under the terms of the GNU GPL, version 2. See
6 * the COPYING file in the top-level directory.
7 */ 5 */
8#include <linux/types.h> 6#include <linux/types.h>
9#include <linux/mutex.h> 7#include <linux/mutex.h>
diff --git a/fs/squashfs/decompressor_multi_percpu.c b/fs/squashfs/decompressor_multi_percpu.c
index 23a9c28ad8ea..2a2a2d106440 100644
--- a/fs/squashfs/decompressor_multi_percpu.c
+++ b/fs/squashfs/decompressor_multi_percpu.c
@@ -1,9 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (c) 2013 3 * Copyright (c) 2013
3 * Phillip Lougher <phillip@squashfs.org.uk> 4 * Phillip Lougher <phillip@squashfs.org.uk>
4 *
5 * This work is licensed under the terms of the GNU GPL, version 2. See
6 * the COPYING file in the top-level directory.
7 */ 5 */
8 6
9#include <linux/types.h> 7#include <linux/types.h>
diff --git a/fs/squashfs/decompressor_single.c b/fs/squashfs/decompressor_single.c
index a6c75929a00e..550c3e592032 100644
--- a/fs/squashfs/decompressor_single.c
+++ b/fs/squashfs/decompressor_single.c
@@ -1,9 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (c) 2013 3 * Copyright (c) 2013
3 * Phillip Lougher <phillip@squashfs.org.uk> 4 * Phillip Lougher <phillip@squashfs.org.uk>
4 *
5 * This work is licensed under the terms of the GNU GPL, version 2. See
6 * the COPYING file in the top-level directory.
7 */ 5 */
8 6
9#include <linux/types.h> 7#include <linux/types.h>
diff --git a/fs/squashfs/dir.c b/fs/squashfs/dir.c
index a5845f94a2a1..a2ade63eccdf 100644
--- a/fs/squashfs/dir.c
+++ b/fs/squashfs/dir.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * dir.c 8 * dir.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/export.c b/fs/squashfs/export.c
index 8073b6532cf0..ae2c87bb0fbe 100644
--- a/fs/squashfs/export.c
+++ b/fs/squashfs/export.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * export.c 8 * export.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/file.c b/fs/squashfs/file.c
index f1c1430ae721..7b1128398976 100644
--- a/fs/squashfs/file.c
+++ b/fs/squashfs/file.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * file.c 8 * file.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/file_cache.c b/fs/squashfs/file_cache.c
index a9ba8d96776a..54c17b7c85fd 100644
--- a/fs/squashfs/file_cache.c
+++ b/fs/squashfs/file_cache.c
@@ -1,9 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (c) 2013 3 * Copyright (c) 2013
3 * Phillip Lougher <phillip@squashfs.org.uk> 4 * Phillip Lougher <phillip@squashfs.org.uk>
4 *
5 * This work is licensed under the terms of the GNU GPL, version 2. See
6 * the COPYING file in the top-level directory.
7 */ 5 */
8 6
9#include <linux/fs.h> 7#include <linux/fs.h>
diff --git a/fs/squashfs/file_direct.c b/fs/squashfs/file_direct.c
index 80db1b86a27c..a4894cc59447 100644
--- a/fs/squashfs/file_direct.c
+++ b/fs/squashfs/file_direct.c
@@ -1,9 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (c) 2013 3 * Copyright (c) 2013
3 * Phillip Lougher <phillip@squashfs.org.uk> 4 * Phillip Lougher <phillip@squashfs.org.uk>
4 *
5 * This work is licensed under the terms of the GNU GPL, version 2. See
6 * the COPYING file in the top-level directory.
7 */ 5 */
8 6
9#include <linux/fs.h> 7#include <linux/fs.h>
diff --git a/fs/squashfs/fragment.c b/fs/squashfs/fragment.c
index 0681feab4a84..49602b9a42e1 100644
--- a/fs/squashfs/fragment.c
+++ b/fs/squashfs/fragment.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * fragment.c 8 * fragment.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/id.c b/fs/squashfs/id.c
index d38ea3dab951..6be5afe7287d 100644
--- a/fs/squashfs/id.c
+++ b/fs/squashfs/id.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * id.c 8 * id.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/inode.c b/fs/squashfs/inode.c
index e9793b1e49a5..24463145b351 100644
--- a/fs/squashfs/inode.c
+++ b/fs/squashfs/inode.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * inode.c 8 * inode.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/lz4_wrapper.c b/fs/squashfs/lz4_wrapper.c
index 95da65366548..c4e47e0588c7 100644
--- a/fs/squashfs/lz4_wrapper.c
+++ b/fs/squashfs/lz4_wrapper.c
@@ -1,9 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (c) 2013, 2014 3 * Copyright (c) 2013, 2014
3 * Phillip Lougher <phillip@squashfs.org.uk> 4 * Phillip Lougher <phillip@squashfs.org.uk>
4 *
5 * This work is licensed under the terms of the GNU GPL, version 2. See
6 * the COPYING file in the top-level directory.
7 */ 5 */
8 6
9#include <linux/buffer_head.h> 7#include <linux/buffer_head.h>
diff --git a/fs/squashfs/lzo_wrapper.c b/fs/squashfs/lzo_wrapper.c
index 934c17e96590..aa3c3dafc33d 100644
--- a/fs/squashfs/lzo_wrapper.c
+++ b/fs/squashfs/lzo_wrapper.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2010 LG Electronics 5 * Copyright (c) 2010 LG Electronics
5 * Chan Jeong <chan.jeong@lge.com> 6 * Chan Jeong <chan.jeong@lge.com>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * lzo_wrapper.c 8 * lzo_wrapper.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/namei.c b/fs/squashfs/namei.c
index 40c10d9974c9..11e4539b9eae 100644
--- a/fs/squashfs/namei.c
+++ b/fs/squashfs/namei.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * namei.c 8 * namei.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/page_actor.c b/fs/squashfs/page_actor.c
index 9b7b1b6a7892..520d323a99ce 100644
--- a/fs/squashfs/page_actor.c
+++ b/fs/squashfs/page_actor.c
@@ -1,9 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (c) 2013 3 * Copyright (c) 2013
3 * Phillip Lougher <phillip@squashfs.org.uk> 4 * Phillip Lougher <phillip@squashfs.org.uk>
4 *
5 * This work is licensed under the terms of the GNU GPL, version 2. See
6 * the COPYING file in the top-level directory.
7 */ 5 */
8 6
9#include <linux/kernel.h> 7#include <linux/kernel.h>
diff --git a/fs/squashfs/page_actor.h b/fs/squashfs/page_actor.h
index 98537eab27e2..2e3073ace009 100644
--- a/fs/squashfs/page_actor.h
+++ b/fs/squashfs/page_actor.h
@@ -1,11 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1#ifndef PAGE_ACTOR_H 2#ifndef PAGE_ACTOR_H
2#define PAGE_ACTOR_H 3#define PAGE_ACTOR_H
3/* 4/*
4 * Copyright (c) 2013 5 * Copyright (c) 2013
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 *
7 * This work is licensed under the terms of the GNU GPL, version 2. See
8 * the COPYING file in the top-level directory.
9 */ 7 */
10 8
11#ifndef CONFIG_SQUASHFS_FILE_DIRECT 9#ifndef CONFIG_SQUASHFS_FILE_DIRECT
diff --git a/fs/squashfs/squashfs.h b/fs/squashfs/squashfs.h
index f89f8a74c6ce..2797763ed046 100644
--- a/fs/squashfs/squashfs.h
+++ b/fs/squashfs/squashfs.h
@@ -1,23 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * squashfs.h 8 * squashfs.h
22 */ 9 */
23 10
diff --git a/fs/squashfs/squashfs_fs.h b/fs/squashfs/squashfs_fs.h
index 4e6853f084d0..7187bd1a30ea 100644
--- a/fs/squashfs/squashfs_fs.h
+++ b/fs/squashfs/squashfs_fs.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1#ifndef SQUASHFS_FS 2#ifndef SQUASHFS_FS
2#define SQUASHFS_FS 3#define SQUASHFS_FS
3/* 4/*
@@ -6,20 +7,6 @@
6 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 7 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
7 * Phillip Lougher <phillip@squashfs.org.uk> 8 * Phillip Lougher <phillip@squashfs.org.uk>
8 * 9 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version 2,
12 * or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 *
23 * squashfs_fs.h 10 * squashfs_fs.h
24 */ 11 */
25 12
diff --git a/fs/squashfs/squashfs_fs_i.h b/fs/squashfs/squashfs_fs_i.h
index d09fcd6fb85d..2c82d6f2a456 100644
--- a/fs/squashfs/squashfs_fs_i.h
+++ b/fs/squashfs/squashfs_fs_i.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1#ifndef SQUASHFS_FS_I 2#ifndef SQUASHFS_FS_I
2#define SQUASHFS_FS_I 3#define SQUASHFS_FS_I
3/* 4/*
@@ -6,20 +7,6 @@
6 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 7 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
7 * Phillip Lougher <phillip@squashfs.org.uk> 8 * Phillip Lougher <phillip@squashfs.org.uk>
8 * 9 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version 2,
12 * or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 *
23 * squashfs_fs_i.h 10 * squashfs_fs_i.h
24 */ 11 */
25 12
diff --git a/fs/squashfs/squashfs_fs_sb.h b/fs/squashfs/squashfs_fs_sb.h
index ef69c31947bf..34c21ffb6df3 100644
--- a/fs/squashfs/squashfs_fs_sb.h
+++ b/fs/squashfs/squashfs_fs_sb.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1#ifndef SQUASHFS_FS_SB 2#ifndef SQUASHFS_FS_SB
2#define SQUASHFS_FS_SB 3#define SQUASHFS_FS_SB
3/* 4/*
@@ -6,20 +7,6 @@
6 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 7 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
7 * Phillip Lougher <phillip@squashfs.org.uk> 8 * Phillip Lougher <phillip@squashfs.org.uk>
8 * 9 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version 2,
12 * or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 *
23 * squashfs_fs_sb.h 10 * squashfs_fs_sb.h
24 */ 11 */
25 12
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c
index 767046d9f65d..effa638d6d85 100644
--- a/fs/squashfs/super.c
+++ b/fs/squashfs/super.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * super.c 8 * super.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/symlink.c b/fs/squashfs/symlink.c
index befeba0fa70a..1430613183e6 100644
--- a/fs/squashfs/symlink.c
+++ b/fs/squashfs/symlink.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * symlink.c 8 * symlink.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/xattr.c b/fs/squashfs/xattr.c
index 1548b3784548..e1e3f3dd5a06 100644
--- a/fs/squashfs/xattr.c
+++ b/fs/squashfs/xattr.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2010 5 * Copyright (c) 2010
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * xattr.c 8 * xattr.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/xattr.h b/fs/squashfs/xattr.h
index afe70f815e3d..184129afd456 100644
--- a/fs/squashfs/xattr.h
+++ b/fs/squashfs/xattr.h
@@ -1,23 +1,10 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2010 5 * Copyright (c) 2010
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * xattr.h 8 * xattr.h
22 */ 9 */
23 10
diff --git a/fs/squashfs/xattr_id.c b/fs/squashfs/xattr_id.c
index c89607d690c4..d99e08464554 100644
--- a/fs/squashfs/xattr_id.c
+++ b/fs/squashfs/xattr_id.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2010 5 * Copyright (c) 2010
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * xattr_id.c 8 * xattr_id.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/xz_wrapper.c b/fs/squashfs/xz_wrapper.c
index 6bfaef73d065..4b2f2051a6dc 100644
--- a/fs/squashfs/xz_wrapper.c
+++ b/fs/squashfs/xz_wrapper.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * xz_wrapper.c 8 * xz_wrapper.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/zlib_wrapper.c b/fs/squashfs/zlib_wrapper.c
index 2ec24d128bce..f2226afa1625 100644
--- a/fs/squashfs/zlib_wrapper.c
+++ b/fs/squashfs/zlib_wrapper.c
@@ -1,23 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
5 * Phillip Lougher <phillip@squashfs.org.uk> 6 * Phillip Lougher <phillip@squashfs.org.uk>
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * zlib_wrapper.c 8 * zlib_wrapper.c
22 */ 9 */
23 10
diff --git a/fs/squashfs/zstd_wrapper.c b/fs/squashfs/zstd_wrapper.c
index eeaabf881159..b448c2a1d0ed 100644
--- a/fs/squashfs/zstd_wrapper.c
+++ b/fs/squashfs/zstd_wrapper.c
@@ -1,19 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
1/* 2/*
2 * Squashfs - a compressed read only filesystem for Linux 3 * Squashfs - a compressed read only filesystem for Linux
3 * 4 *
4 * Copyright (c) 2016-present, Facebook, Inc. 5 * Copyright (c) 2016-present, Facebook, Inc.
5 * All rights reserved. 6 * All rights reserved.
6 * 7 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * zstd_wrapper.c 8 * zstd_wrapper.c
18 */ 9 */
19 10
diff --git a/fs/stack.c b/fs/stack.c
index 664ed35558bd..4ef2c056269d 100644
--- a/fs/stack.c
+++ b/fs/stack.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1#include <linux/export.h> 2#include <linux/export.h>
2#include <linux/fs.h> 3#include <linux/fs.h>
3#include <linux/fs_stack.h> 4#include <linux/fs_stack.h>
diff --git a/fs/sysfs/Kconfig b/fs/sysfs/Kconfig
index b2756014508c..b0fe1cce33a0 100644
--- a/fs/sysfs/Kconfig
+++ b/fs/sysfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config SYSFS 2config SYSFS
2 bool "sysfs file system support" if EXPERT 3 bool "sysfs file system support" if EXPERT
3 default y 4 default y
diff --git a/fs/sysfs/Makefile b/fs/sysfs/Makefile
index 6eff6e1205a5..0906b9e522fe 100644
--- a/fs/sysfs/Makefile
+++ b/fs/sysfs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the sysfs virtual filesystem 3# Makefile for the sysfs virtual filesystem
3# 4#
diff --git a/fs/sysv/Kconfig b/fs/sysv/Kconfig
index 33aeb4b75db1..d4edf7d9ae10 100644
--- a/fs/sysv/Kconfig
+++ b/fs/sysv/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config SYSV_FS 2config SYSV_FS
2 tristate "System V/Xenix/V7/Coherent file system support" 3 tristate "System V/Xenix/V7/Coherent file system support"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/sysv/Makefile b/fs/sysv/Makefile
index 7a75e70a4b61..17d12ba04b18 100644
--- a/fs/sysv/Makefile
+++ b/fs/sysv/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the Linux SystemV/Coherent filesystem routines. 3# Makefile for the Linux SystemV/Coherent filesystem routines.
3# 4#
diff --git a/fs/sysv/super.c b/fs/sysv/super.c
index d3b2f54d6449..d788b1daa7eb 100644
--- a/fs/sysv/super.c
+++ b/fs/sysv/super.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/sysv/inode.c 3 * linux/fs/sysv/inode.c
3 * 4 *
diff --git a/fs/tracefs/Makefile b/fs/tracefs/Makefile
index 82fa35b656c4..7c35a282b484 100644
--- a/fs/tracefs/Makefile
+++ b/fs/tracefs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1tracefs-objs := inode.o 2tracefs-objs := inode.o
2 3
3obj-$(CONFIG_TRACING) += tracefs.o 4obj-$(CONFIG_TRACING) += tracefs.o
diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c
index 7098c49f3693..a5bab190a297 100644
--- a/fs/tracefs/inode.c
+++ b/fs/tracefs/inode.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * inode.c - part of tracefs, a pseudo file system for activating tracing 3 * inode.c - part of tracefs, a pseudo file system for activating tracing
3 * 4 *
@@ -5,12 +6,7 @@
5 * 6 *
6 * Copyright (C) 2014 Red Hat Inc, author: Steven Rostedt <srostedt@redhat.com> 7 * Copyright (C) 2014 Red Hat Inc, author: Steven Rostedt <srostedt@redhat.com>
7 * 8 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License version
10 * 2 as published by the Free Software Foundation.
11 *
12 * tracefs is the file system that is used by the tracing infrastructure. 9 * tracefs is the file system that is used by the tracing infrastructure.
13 *
14 */ 10 */
15 11
16#include <linux/module.h> 12#include <linux/module.h>
diff --git a/fs/ubifs/Kconfig b/fs/ubifs/Kconfig
index 9da2f135121b..06c35c64162b 100644
--- a/fs/ubifs/Kconfig
+++ b/fs/ubifs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config UBIFS_FS 2config UBIFS_FS
2 tristate "UBIFS file system support" 3 tristate "UBIFS file system support"
3 select CRC16 4 select CRC16
diff --git a/fs/ubifs/budget.c b/fs/ubifs/budget.c
index 7ef22baf9d15..80d7301ab76d 100644
--- a/fs/ubifs/budget.c
+++ b/fs/ubifs/budget.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Adrian Hunter 7 * Authors: Adrian Hunter
20 * Artem Bityutskiy (Битюцкий Артём) 8 * Artem Bityutskiy (Битюцкий Артём)
21 */ 9 */
diff --git a/fs/ubifs/commit.c b/fs/ubifs/commit.c
index 591f2c7a48f0..ad292c5a43a9 100644
--- a/fs/ubifs/commit.c
+++ b/fs/ubifs/commit.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Adrian Hunter 7 * Authors: Adrian Hunter
20 * Artem Bityutskiy (Битюцкий Артём) 8 * Artem Bityutskiy (Битюцкий Артём)
21 */ 9 */
diff --git a/fs/ubifs/compress.c b/fs/ubifs/compress.c
index 565cb56d7225..99c53ad11e93 100644
--- a/fs/ubifs/compress.c
+++ b/fs/ubifs/compress.c
@@ -1,22 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * Copyright (C) 2006, 2007 University of Szeged, Hungary 6 * Copyright (C) 2006, 2007 University of Szeged, Hungary
6 * 7 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 * more details.
15 *
16 * You should have received a copy of the GNU General Public License along with
17 * this program; if not, write to the Free Software Foundation, Inc., 51
18 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 *
20 * Authors: Adrian Hunter 8 * Authors: Adrian Hunter
21 * Artem Bityutskiy (Битюцкий Артём) 9 * Artem Bityutskiy (Битюцкий Артём)
22 * Zoltan Sogor 10 * Zoltan Sogor
diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c
index 3a2613038e88..138c5b07d803 100644
--- a/fs/ubifs/debug.c
+++ b/fs/ubifs/debug.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation 5 * Copyright (C) 2006-2008 Nokia Corporation
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 */ 9 */
diff --git a/fs/ubifs/debug.h b/fs/ubifs/debug.h
index 64c6977c189b..eb26097b6f70 100644
--- a/fs/ubifs/debug.h
+++ b/fs/ubifs/debug.h
@@ -1,21 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 */ 9 */
diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c
index 1a379b596b0d..0b98e3c8b461 100644
--- a/fs/ubifs/dir.c
+++ b/fs/ubifs/dir.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* * This file is part of UBIFS. 2/* * This file is part of UBIFS.
2 * 3 *
3 * Copyright (C) 2006-2008 Nokia Corporation. 4 * Copyright (C) 2006-2008 Nokia Corporation.
4 * Copyright (C) 2006, 2007 University of Szeged, Hungary 5 * Copyright (C) 2006, 2007 University of Szeged, Hungary
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 * Zoltan Sogor 9 * Zoltan Sogor
diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c
index 512e7d9c60cd..e5f8de62fc51 100644
--- a/fs/ubifs/file.c
+++ b/fs/ubifs/file.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 */ 9 */
diff --git a/fs/ubifs/find.c b/fs/ubifs/find.c
index 5deaae7fcead..873e6e1c92b5 100644
--- a/fs/ubifs/find.c
+++ b/fs/ubifs/find.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 */ 9 */
diff --git a/fs/ubifs/gc.c b/fs/ubifs/gc.c
index bf75fdc76fc3..62cb3db44e6e 100644
--- a/fs/ubifs/gc.c
+++ b/fs/ubifs/gc.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Adrian Hunter 7 * Authors: Adrian Hunter
20 * Artem Bityutskiy (Битюцкий Артём) 8 * Artem Bityutskiy (Битюцкий Артём)
21 */ 9 */
diff --git a/fs/ubifs/io.c b/fs/ubifs/io.c
index d124117efd42..8ceb51478800 100644
--- a/fs/ubifs/io.c
+++ b/fs/ubifs/io.c
@@ -1,22 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * Copyright (C) 2006, 2007 University of Szeged, Hungary 6 * Copyright (C) 2006, 2007 University of Szeged, Hungary
6 * 7 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 * more details.
15 *
16 * You should have received a copy of the GNU General Public License along with
17 * this program; if not, write to the Free Software Foundation, Inc., 51
18 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 *
20 * Authors: Artem Bityutskiy (Битюцкий Артём) 8 * Authors: Artem Bityutskiy (Битюцкий Артём)
21 * Adrian Hunter 9 * Adrian Hunter
22 * Zoltan Sogor 10 * Zoltan Sogor
diff --git a/fs/ubifs/ioctl.c b/fs/ubifs/ioctl.c
index 6b05b3ec500e..4f1a397fda69 100644
--- a/fs/ubifs/ioctl.c
+++ b/fs/ubifs/ioctl.c
@@ -1,22 +1,10 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * Copyright (C) 2006, 2007 University of Szeged, Hungary 6 * Copyright (C) 2006, 2007 University of Szeged, Hungary
6 * 7 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 * more details.
15 *
16 * You should have received a copy of the GNU General Public License along with
17 * this program; if not, write to the Free Software Foundation, Inc., 51
18 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 *
20 * Authors: Zoltan Sogor 8 * Authors: Zoltan Sogor
21 * Artem Bityutskiy (Битюцкий Артём) 9 * Artem Bityutskiy (Битюцкий Артём)
22 * Adrian Hunter 10 * Adrian Hunter
diff --git a/fs/ubifs/journal.c b/fs/ubifs/journal.c
index 74a7306978d0..4fd9683b8245 100644
--- a/fs/ubifs/journal.c
+++ b/fs/ubifs/journal.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 */ 9 */
diff --git a/fs/ubifs/key.h b/fs/ubifs/key.h
index 2feff6cbbb77..afa704ff5ca0 100644
--- a/fs/ubifs/key.h
+++ b/fs/ubifs/key.h
@@ -1,21 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 */ 9 */
diff --git a/fs/ubifs/log.c b/fs/ubifs/log.c
index 15fd854149bb..cd85d7d4c515 100644
--- a/fs/ubifs/log.c
+++ b/fs/ubifs/log.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 */ 9 */
diff --git a/fs/ubifs/lprops.c b/fs/ubifs/lprops.c
index fa8d775c9753..29826c51883a 100644
--- a/fs/ubifs/lprops.c
+++ b/fs/ubifs/lprops.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Adrian Hunter 7 * Authors: Adrian Hunter
20 * Artem Bityutskiy (Битюцкий Артём) 8 * Artem Bityutskiy (Битюцкий Артём)
21 */ 9 */
diff --git a/fs/ubifs/lpt.c b/fs/ubifs/lpt.c
index b0c5f06128b5..e21abf250951 100644
--- a/fs/ubifs/lpt.c
+++ b/fs/ubifs/lpt.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Adrian Hunter 7 * Authors: Adrian Hunter
20 * Artem Bityutskiy (Битюцкий Артём) 8 * Artem Bityutskiy (Битюцкий Артём)
21 */ 9 */
diff --git a/fs/ubifs/lpt_commit.c b/fs/ubifs/lpt_commit.c
index 1f88caffdf2a..ff5e0411cf2d 100644
--- a/fs/ubifs/lpt_commit.c
+++ b/fs/ubifs/lpt_commit.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Adrian Hunter 7 * Authors: Adrian Hunter
20 * Artem Bityutskiy (Битюцкий Артём) 8 * Artem Bityutskiy (Битюцкий Артём)
21 */ 9 */
diff --git a/fs/ubifs/master.c b/fs/ubifs/master.c
index 5ea51bbd14c7..b42a768709c0 100644
--- a/fs/ubifs/master.c
+++ b/fs/ubifs/master.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 */ 9 */
diff --git a/fs/ubifs/misc.h b/fs/ubifs/misc.h
index 78a6e97f846e..c97a4d537d83 100644
--- a/fs/ubifs/misc.h
+++ b/fs/ubifs/misc.h
@@ -1,21 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation 5 * Copyright (C) 2006-2008 Nokia Corporation
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 */ 9 */
diff --git a/fs/ubifs/orphan.c b/fs/ubifs/orphan.c
index 2f1618f300fb..cb72688032cd 100644
--- a/fs/ubifs/orphan.c
+++ b/fs/ubifs/orphan.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Author: Adrian Hunter 7 * Author: Adrian Hunter
20 */ 8 */
21 9
diff --git a/fs/ubifs/recovery.c b/fs/ubifs/recovery.c
index 8526b7ec4707..3fc589881825 100644
--- a/fs/ubifs/recovery.c
+++ b/fs/ubifs/recovery.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation 5 * Copyright (C) 2006-2008 Nokia Corporation
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Adrian Hunter 7 * Authors: Adrian Hunter
20 * Artem Bityutskiy (Битюцкий Артём) 8 * Artem Bityutskiy (Битюцкий Артём)
21 */ 9 */
diff --git a/fs/ubifs/replay.c b/fs/ubifs/replay.c
index 5c8a81a019a4..b28ac4dfb407 100644
--- a/fs/ubifs/replay.c
+++ b/fs/ubifs/replay.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Adrian Hunter 7 * Authors: Adrian Hunter
20 * Artem Bityutskiy (Битюцкий Артём) 8 * Artem Bityutskiy (Битюцкий Артём)
21 */ 9 */
diff --git a/fs/ubifs/sb.c b/fs/ubifs/sb.c
index 3ca41965db6e..12c2afdb5804 100644
--- a/fs/ubifs/sb.c
+++ b/fs/ubifs/sb.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 */ 9 */
diff --git a/fs/ubifs/scan.c b/fs/ubifs/scan.c
index ea88926163f4..c69cdb5e65bc 100644
--- a/fs/ubifs/scan.c
+++ b/fs/ubifs/scan.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation 5 * Copyright (C) 2006-2008 Nokia Corporation
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Adrian Hunter 7 * Authors: Adrian Hunter
20 * Artem Bityutskiy (Битюцкий Артём) 8 * Artem Bityutskiy (Битюцкий Артём)
21 */ 9 */
diff --git a/fs/ubifs/shrinker.c b/fs/ubifs/shrinker.c
index 5eb5958723d4..d00a6f20ac7b 100644
--- a/fs/ubifs/shrinker.c
+++ b/fs/ubifs/shrinker.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 */ 9 */
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index 04b8ecfd3470..6cfc494050be 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 */ 9 */
diff --git a/fs/ubifs/tnc.c b/fs/ubifs/tnc.c
index ebf8c26f5b22..f5a823cb0e43 100644
--- a/fs/ubifs/tnc.c
+++ b/fs/ubifs/tnc.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Adrian Hunter 7 * Authors: Adrian Hunter
20 * Artem Bityutskiy (Битюцкий Артём) 8 * Artem Bityutskiy (Битюцкий Артём)
21 */ 9 */
diff --git a/fs/ubifs/tnc_commit.c b/fs/ubifs/tnc_commit.c
index dbcd2c350b65..a384a0f9ff32 100644
--- a/fs/ubifs/tnc_commit.c
+++ b/fs/ubifs/tnc_commit.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Adrian Hunter 7 * Authors: Adrian Hunter
20 * Artem Bityutskiy (Битюцкий Артём) 8 * Artem Bityutskiy (Битюцкий Артём)
21 */ 9 */
diff --git a/fs/ubifs/tnc_misc.c b/fs/ubifs/tnc_misc.c
index d1815e959007..6f293f662d98 100644
--- a/fs/ubifs/tnc_misc.c
+++ b/fs/ubifs/tnc_misc.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Adrian Hunter 7 * Authors: Adrian Hunter
20 * Artem Bityutskiy (Битюцкий Артём) 8 * Artem Bityutskiy (Битюцкий Артём)
21 */ 9 */
diff --git a/fs/ubifs/ubifs-media.h b/fs/ubifs/ubifs-media.h
index 8b7c1844014f..86f0f2be116c 100644
--- a/fs/ubifs/ubifs-media.h
+++ b/fs/ubifs/ubifs-media.h
@@ -1,21 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 */ 9 */
diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h
index fd7f39990157..745b23e5b406 100644
--- a/fs/ubifs/ubifs.h
+++ b/fs/ubifs/ubifs.h
@@ -1,21 +1,9 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation 5 * Copyright (C) 2006-2008 Nokia Corporation
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 */ 9 */
diff --git a/fs/ubifs/xattr.c b/fs/ubifs/xattr.c
index bcfed27e8997..9aefbb60074f 100644
--- a/fs/ubifs/xattr.c
+++ b/fs/ubifs/xattr.c
@@ -1,21 +1,9 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * This file is part of UBIFS. 3 * This file is part of UBIFS.
3 * 4 *
4 * Copyright (C) 2006-2008 Nokia Corporation. 5 * Copyright (C) 2006-2008 Nokia Corporation.
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors: Artem Bityutskiy (Битюцкий Артём) 7 * Authors: Artem Bityutskiy (Битюцкий Артём)
20 * Adrian Hunter 8 * Adrian Hunter
21 */ 9 */
diff --git a/fs/udf/Kconfig b/fs/udf/Kconfig
index aa415054ad0a..6848de581ce1 100644
--- a/fs/udf/Kconfig
+++ b/fs/udf/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config UDF_FS 2config UDF_FS
2 tristate "UDF file system support" 3 tristate "UDF file system support"
3 select CRC_ITU_T 4 select CRC_ITU_T
diff --git a/fs/udf/Makefile b/fs/udf/Makefile
index eb880f66c23a..63981cd333e3 100644
--- a/fs/udf/Makefile
+++ b/fs/udf/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the linux udf-filesystem routines. 3# Makefile for the linux udf-filesystem routines.
3# 4#
diff --git a/fs/ufs/Kconfig b/fs/ufs/Kconfig
index 0bf6e16f8d79..fcb41516ea59 100644
--- a/fs/ufs/Kconfig
+++ b/fs/ufs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config UFS_FS 2config UFS_FS
2 tristate "UFS file system support (read only)" 3 tristate "UFS file system support (read only)"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/ufs/Makefile b/fs/ufs/Makefile
index ec4a6b49fa13..042344c85be0 100644
--- a/fs/ufs/Makefile
+++ b/fs/ufs/Makefile
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# Makefile for the Linux ufs filesystem routines. 3# Makefile for the Linux ufs filesystem routines.
3# 4#
diff --git a/fs/ufs/super.c b/fs/ufs/super.c
index 84c0c5178cd2..3d247c0d92aa 100644
--- a/fs/ufs/super.c
+++ b/fs/ufs/super.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * linux/fs/ufs/super.c 3 * linux/fs/ufs/super.c
3 * 4 *
diff --git a/fs/unicode/Kconfig b/fs/unicode/Kconfig
index b560a879edf7..2c27b9a5cd6c 100644
--- a/fs/unicode/Kconfig
+++ b/fs/unicode/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1# 2#
2# UTF-8 normalization 3# UTF-8 normalization
3# 4#
diff --git a/fs/unicode/utf8-norm.c b/fs/unicode/utf8-norm.c
index 801ed6d2ea37..1d2d2e5b906a 100644
--- a/fs/unicode/utf8-norm.c
+++ b/fs/unicode/utf8-norm.c
@@ -1,16 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Copyright (c) 2014 SGI. 3 * Copyright (c) 2014 SGI.
3 * All rights reserved. 4 * All rights reserved.
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License as
7 * published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it would be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 */ 5 */
15 6
16#include "utf8n.h" 7#include "utf8n.h"
diff --git a/fs/unicode/utf8-selftest.c b/fs/unicode/utf8-selftest.c
index 80752013fce0..6c1a36bbf6ad 100644
--- a/fs/unicode/utf8-selftest.c
+++ b/fs/unicode/utf8-selftest.c
@@ -1,16 +1,8 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * Kernel module for testing utf-8 support. 3 * Kernel module for testing utf-8 support.
3 * 4 *
4 * Copyright 2017 Collabora Ltd. 5 * Copyright 2017 Collabora Ltd.
5 *
6 * This software is licensed under the terms of the GNU General Public
7 * License version 2, as published by the Free Software Foundation, and
8 * may be copied, distributed, and modified under those terms.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */ 6 */
15 7
16#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 8#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/fs/unicode/utf8n.h b/fs/unicode/utf8n.h
index a120638014c1..0acd530c2c79 100644
--- a/fs/unicode/utf8n.h
+++ b/fs/unicode/utf8n.h
@@ -1,16 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0-only */
1/* 2/*
2 * Copyright (c) 2014 SGI. 3 * Copyright (c) 2014 SGI.
3 * All rights reserved. 4 * All rights reserved.
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License as
7 * published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it would be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 */ 5 */
15 6
16#ifndef UTF8NORM_H 7#ifndef UTF8NORM_H
diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c
index 3b30301c90ec..ae0b8b5f69e6 100644
--- a/fs/userfaultfd.c
+++ b/fs/userfaultfd.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 * fs/userfaultfd.c 3 * fs/userfaultfd.c
3 * 4 *
@@ -5,9 +6,6 @@
5 * Copyright (C) 2008-2009 Red Hat, Inc. 6 * Copyright (C) 2008-2009 Red Hat, Inc.
6 * Copyright (C) 2015 Red Hat, Inc. 7 * Copyright (C) 2015 Red Hat, Inc.
7 * 8 *
8 * This work is licensed under the terms of the GNU GPL, version 2. See
9 * the COPYING file in the top-level directory.
10 *
11 * Some part derived from fs/eventfd.c (anon inode setup) and 9 * Some part derived from fs/eventfd.c (anon inode setup) and
12 * mm/ksm.c (mm hashing). 10 * mm/ksm.c (mm hashing).
13 */ 11 */
diff --git a/fs/xattr.c b/fs/xattr.c
index 0d6a6a4af861..90dd78f0eb27 100644
--- a/fs/xattr.c
+++ b/fs/xattr.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0-only
1/* 2/*
2 File: fs/xattr.c 3 File: fs/xattr.c
3 4
diff --git a/fs/xfs/Kconfig b/fs/xfs/Kconfig
index 99af5e5bda9f..e685299eb3d2 100644
--- a/fs/xfs/Kconfig
+++ b/fs/xfs/Kconfig
@@ -1,3 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0-only
1config XFS_FS 2config XFS_FS
2 tristate "XFS filesystem support" 3 tristate "XFS filesystem support"
3 depends on BLOCK 4 depends on BLOCK
diff --git a/fs/xfs/libxfs/xfs_ialloc_btree.c b/fs/xfs/libxfs/xfs_ialloc_btree.c
index 1080381ff243..bc2dfacd2f4a 100644
--- a/fs/xfs/libxfs/xfs_ialloc_btree.c
+++ b/fs/xfs/libxfs/xfs_ialloc_btree.c
@@ -549,6 +549,15 @@ xfs_inobt_max_size(
549 if (mp->m_inobt_mxr[0] == 0) 549 if (mp->m_inobt_mxr[0] == 0)
550 return 0; 550 return 0;
551 551
552 /*
553 * The log is permanently allocated, so the space it occupies will
554 * never be available for the kinds of things that would require btree
555 * expansion. We therefore can pretend the space isn't there.
556 */
557 if (mp->m_sb.sb_logstart &&
558 XFS_FSB_TO_AGNO(mp, mp->m_sb.sb_logstart) == agno)
559 agblocks -= mp->m_sb.sb_logblocks;
560
552 return xfs_btree_calc_size(mp->m_inobt_mnr, 561 return xfs_btree_calc_size(mp->m_inobt_mnr,
553 (uint64_t)agblocks * mp->m_sb.sb_inopblock / 562 (uint64_t)agblocks * mp->m_sb.sb_inopblock /
554 XFS_INODES_PER_CHUNK); 563 XFS_INODES_PER_CHUNK);
diff --git a/fs/xfs/libxfs/xfs_refcount_btree.c b/fs/xfs/libxfs/xfs_refcount_btree.c
index 6f47ab876d90..5d9de9b21726 100644
--- a/fs/xfs/libxfs/xfs_refcount_btree.c
+++ b/fs/xfs/libxfs/xfs_refcount_btree.c
@@ -427,6 +427,15 @@ xfs_refcountbt_calc_reserves(
427 tree_len = be32_to_cpu(agf->agf_refcount_blocks); 427 tree_len = be32_to_cpu(agf->agf_refcount_blocks);
428 xfs_trans_brelse(tp, agbp); 428 xfs_trans_brelse(tp, agbp);
429 429
430 /*
431 * The log is permanently allocated, so the space it occupies will
432 * never be available for the kinds of things that would require btree
433 * expansion. We therefore can pretend the space isn't there.
434 */
435 if (mp->m_sb.sb_logstart &&
436 XFS_FSB_TO_AGNO(mp, mp->m_sb.sb_logstart) == agno)
437 agblocks -= mp->m_sb.sb_logblocks;
438
430 *ask += xfs_refcountbt_max_size(mp, agblocks); 439 *ask += xfs_refcountbt_max_size(mp, agblocks);
431 *used += tree_len; 440 *used += tree_len;
432 441
diff --git a/fs/xfs/libxfs/xfs_rmap_btree.c b/fs/xfs/libxfs/xfs_rmap_btree.c
index 5738e11055e6..5d1f8884c888 100644
--- a/fs/xfs/libxfs/xfs_rmap_btree.c
+++ b/fs/xfs/libxfs/xfs_rmap_btree.c
@@ -578,6 +578,15 @@ xfs_rmapbt_calc_reserves(
578 tree_len = be32_to_cpu(agf->agf_rmap_blocks); 578 tree_len = be32_to_cpu(agf->agf_rmap_blocks);
579 xfs_trans_brelse(tp, agbp); 579 xfs_trans_brelse(tp, agbp);
580 580
581 /*
582 * The log is permanently allocated, so the space it occupies will
583 * never be available for the kinds of things that would require btree
584 * expansion. We therefore can pretend the space isn't there.
585 */
586 if (mp->m_sb.sb_logstart &&
587 XFS_FSB_TO_AGNO(mp, mp->m_sb.sb_logstart) == agno)
588 agblocks -= mp->m_sb.sb_logblocks;
589
581 /* Reserve 1% of the AG or enough for 1 block per record. */ 590 /* Reserve 1% of the AG or enough for 1 block per record. */
582 *ask += max(agblocks / 100, xfs_rmapbt_max_size(mp, agblocks)); 591 *ask += max(agblocks / 100, xfs_rmapbt_max_size(mp, agblocks));
583 *used += tree_len; 592 *used += tree_len;
diff --git a/fs/xfs/scrub/ialloc.c b/fs/xfs/scrub/ialloc.c
index 693eb51f5efb..9b47117180cb 100644
--- a/fs/xfs/scrub/ialloc.c
+++ b/fs/xfs/scrub/ialloc.c
@@ -252,7 +252,8 @@ xchk_iallocbt_check_cluster(
252 ir_holemask = (irec->ir_holemask & cluster_mask); 252 ir_holemask = (irec->ir_holemask & cluster_mask);
253 imap.im_blkno = XFS_AGB_TO_DADDR(mp, agno, agbno); 253 imap.im_blkno = XFS_AGB_TO_DADDR(mp, agno, agbno);
254 imap.im_len = XFS_FSB_TO_BB(mp, mp->m_blocks_per_cluster); 254 imap.im_len = XFS_FSB_TO_BB(mp, mp->m_blocks_per_cluster);
255 imap.im_boffset = XFS_INO_TO_OFFSET(mp, irec->ir_startino); 255 imap.im_boffset = XFS_INO_TO_OFFSET(mp, irec->ir_startino) <<
256 mp->m_sb.sb_inodelog;
256 257
257 if (imap.im_boffset != 0 && cluster_base != 0) { 258 if (imap.im_boffset != 0 && cluster_base != 0) {
258 ASSERT(imap.im_boffset == 0 || cluster_base == 0); 259 ASSERT(imap.im_boffset == 0 || cluster_base == 0);
diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
index a6f0f4761a37..8da5e6637771 100644
--- a/fs/xfs/xfs_aops.c
+++ b/fs/xfs/xfs_aops.c
@@ -758,6 +758,7 @@ xfs_add_to_ioend(
758 struct block_device *bdev = xfs_find_bdev_for_inode(inode); 758 struct block_device *bdev = xfs_find_bdev_for_inode(inode);
759 unsigned len = i_blocksize(inode); 759 unsigned len = i_blocksize(inode);
760 unsigned poff = offset & (PAGE_SIZE - 1); 760 unsigned poff = offset & (PAGE_SIZE - 1);
761 bool merged, same_page = false;
761 sector_t sector; 762 sector_t sector;
762 763
763 sector = xfs_fsb_to_db(ip, wpc->imap.br_startblock) + 764 sector = xfs_fsb_to_db(ip, wpc->imap.br_startblock) +
@@ -774,9 +775,13 @@ xfs_add_to_ioend(
774 wpc->imap.br_state, offset, bdev, sector); 775 wpc->imap.br_state, offset, bdev, sector);
775 } 776 }
776 777
777 if (!__bio_try_merge_page(wpc->ioend->io_bio, page, len, poff, true)) { 778 merged = __bio_try_merge_page(wpc->ioend->io_bio, page, len, poff,
778 if (iop) 779 &same_page);
779 atomic_inc(&iop->write_count); 780
781 if (iop && !same_page)
782 atomic_inc(&iop->write_count);
783
784 if (!merged) {
780 if (bio_full(wpc->ioend->io_bio)) 785 if (bio_full(wpc->ioend->io_bio))
781 xfs_chain_bio(wpc->ioend, wbc, bdev, sector); 786 xfs_chain_bio(wpc->ioend, wbc, bdev, sector);
782 bio_add_page(wpc->ioend->io_bio, page, len, poff); 787 bio_add_page(wpc->ioend->io_bio, page, len, poff);
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
index 457ced3ee3e1..2466b0f5b6c4 100644
--- a/fs/xfs/xfs_log.c
+++ b/fs/xfs/xfs_log.c
@@ -2069,7 +2069,7 @@ xlog_print_tic_res(
2069 2069
2070 /* match with XLOG_REG_TYPE_* in xfs_log.h */ 2070 /* match with XLOG_REG_TYPE_* in xfs_log.h */
2071#define REG_TYPE_STR(type, str) [XLOG_REG_TYPE_##type] = str 2071#define REG_TYPE_STR(type, str) [XLOG_REG_TYPE_##type] = str
2072 static char *res_type_str[XLOG_REG_TYPE_MAX + 1] = { 2072 static char *res_type_str[] = {
2073 REG_TYPE_STR(BFORMAT, "bformat"), 2073 REG_TYPE_STR(BFORMAT, "bformat"),
2074 REG_TYPE_STR(BCHUNK, "bchunk"), 2074 REG_TYPE_STR(BCHUNK, "bchunk"),
2075 REG_TYPE_STR(EFI_FORMAT, "efi_format"), 2075 REG_TYPE_STR(EFI_FORMAT, "efi_format"),
@@ -2089,8 +2089,15 @@ xlog_print_tic_res(
2089 REG_TYPE_STR(UNMOUNT, "unmount"), 2089 REG_TYPE_STR(UNMOUNT, "unmount"),
2090 REG_TYPE_STR(COMMIT, "commit"), 2090 REG_TYPE_STR(COMMIT, "commit"),
2091 REG_TYPE_STR(TRANSHDR, "trans header"), 2091 REG_TYPE_STR(TRANSHDR, "trans header"),
2092 REG_TYPE_STR(ICREATE, "inode create") 2092 REG_TYPE_STR(ICREATE, "inode create"),
2093 REG_TYPE_STR(RUI_FORMAT, "rui_format"),
2094 REG_TYPE_STR(RUD_FORMAT, "rud_format"),
2095 REG_TYPE_STR(CUI_FORMAT, "cui_format"),
2096 REG_TYPE_STR(CUD_FORMAT, "cud_format"),
2097 REG_TYPE_STR(BUI_FORMAT, "bui_format"),
2098 REG_TYPE_STR(BUD_FORMAT, "bud_format"),
2093 }; 2099 };
2100 BUILD_BUG_ON(ARRAY_SIZE(res_type_str) != XLOG_REG_TYPE_MAX + 1);
2094#undef REG_TYPE_STR 2101#undef REG_TYPE_STR
2095 2102
2096 xfs_warn(mp, "ticket reservation summary:"); 2103 xfs_warn(mp, "ticket reservation summary:");