Remove the verbose license text from XFS files and replace them
with SPDX tags. This does not change the license of any of the code,
merely refers to the common, up-to-date license files in LICENSES/
This change was mostly scripted. fs/xfs/Makefile and
fs/xfs/libxfs/xfs_fs.h were modified by hand, the rest were detected
and modified by the following command:
for f in `git grep -l "GNU General" fs/xfs/` ; do
echo $f
cat $f | awk -f hdr.awk > $f.new
mv -f $f.new $f
done
And the hdr.awk script that did the modification (including
detecting the difference between GPL-2.0 and GPL-2.0+ licenses)
is as follows:
$ cat hdr.awk
BEGIN {
hdr = 1.0
tag = "GPL-2.0"
str = ""
}
/^ \* This program is free software/ {
hdr = 2.0;
next
}
/any later version./ {
tag = "GPL-2.0+"
next
}
/^ \*\// {
if (hdr > 0.0) {
print "// SPDX-License-Identifier: " tag
print str
print $0
str=""
hdr = 0.0
next
}
print $0
next
}
/^ \* / {
if (hdr > 1.0)
next
if (hdr > 0.0) {
if (str != "")
str = str "\n"
str = str $0
next
}
print $0
next
}
/^ \*/ {
if (hdr > 0.0)
next
print $0
next
}
// {
if (hdr > 0.0) {
if (str != "")
str = str "\n"
str = str $0
next
}
print $0
}
END { }
$
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
53 lines
1.2 KiB
C
53 lines
1.2 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Copyright (c) 2014 Red Hat, Inc.
|
|
* All Rights Reserved.
|
|
*/
|
|
|
|
#ifndef __XFS_SYSFS_H__
|
|
#define __XFS_SYSFS_H__
|
|
|
|
extern struct kobj_type xfs_mp_ktype; /* xfs_mount */
|
|
extern struct kobj_type xfs_dbg_ktype; /* debug */
|
|
extern struct kobj_type xfs_log_ktype; /* xlog */
|
|
extern struct kobj_type xfs_stats_ktype; /* stats */
|
|
|
|
static inline struct xfs_kobj *
|
|
to_kobj(struct kobject *kobject)
|
|
{
|
|
return container_of(kobject, struct xfs_kobj, kobject);
|
|
}
|
|
|
|
static inline void
|
|
xfs_sysfs_release(struct kobject *kobject)
|
|
{
|
|
struct xfs_kobj *kobj = to_kobj(kobject);
|
|
complete(&kobj->complete);
|
|
}
|
|
|
|
static inline int
|
|
xfs_sysfs_init(
|
|
struct xfs_kobj *kobj,
|
|
struct kobj_type *ktype,
|
|
struct xfs_kobj *parent_kobj,
|
|
const char *name)
|
|
{
|
|
init_completion(&kobj->complete);
|
|
return kobject_init_and_add(&kobj->kobject, ktype,
|
|
&parent_kobj->kobject, "%s", name);
|
|
}
|
|
|
|
static inline void
|
|
xfs_sysfs_del(
|
|
struct xfs_kobj *kobj)
|
|
{
|
|
kobject_del(&kobj->kobject);
|
|
kobject_put(&kobj->kobject);
|
|
wait_for_completion(&kobj->complete);
|
|
}
|
|
|
|
int xfs_error_sysfs_init(struct xfs_mount *mp);
|
|
void xfs_error_sysfs_del(struct xfs_mount *mp);
|
|
|
|
#endif /* __XFS_SYSFS_H__ */
|