2021-02-05 04:55:07

by Amy Parker

[permalink] [raw]
Subject: [PATCH 0/3] fs/efs: Follow kernel style guide

As the EFS driver is old and non-maintained, many kernel style guide
rules have not been followed, and their violations have not been
noticed. This patchset corrects those violations.

Amy Parker (3):
fs/efs: Use correct brace styling for statements
fs/efs: Correct spacing after C keywords
fs/efs: Fix line breakage for C keywords

fs/efs/inode.c | 36 ++++++++++++++++++++++--------------
fs/efs/namei.c | 2 +-
fs/efs/super.c | 25 +++++++++++--------------
3 files changed, 34 insertions(+), 29 deletions(-)

--
2.29.2


2021-02-05 04:56:36

by Amy Parker

[permalink] [raw]
Subject: [PATCH 3/3] fs/efs: Fix line breakage for C keywords

Some statements - such as if statements - are not broken into their lines correctly. For example, some are expressed on a single line. Single line if statements are expressely prohibited by the style guide. This patch corrects these violations.

Signed-off-by: Amy Parker <[email protected]>
---
fs/efs/inode.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/fs/efs/inode.c b/fs/efs/inode.c
index 2cc55d514421..0099e6ad529a 100644
--- a/fs/efs/inode.c
+++ b/fs/efs/inode.c
@@ -193,7 +193,8 @@ efs_extent_check(efs_extent *ptr, efs_block_t block, struct efs_sb_info *sb) {

if ((block >= offset) && (block < offset+length)) {
return(sb->fs_start + start + block - offset);
- } else {
+ }
+ else {
return 0;
}
}
@@ -264,7 +265,8 @@ efs_block_t efs_map_block(struct inode *inode, efs_block_t block) {
/* should never happen */
pr_err("couldn't find direct extent for indirect extent %d (block %u)\n",
cur, block);
- if (bh) brelse(bh);
+ if (bh)
+ brelse(bh);
return 0;
}

@@ -276,7 +278,8 @@ efs_block_t efs_map_block(struct inode *inode, efs_block_t block) {
(EFS_BLOCKSIZE / sizeof(efs_extent));

if (first || lastblock != iblock) {
- if (bh) brelse(bh);
+ if (bh)
+ brelse(bh);

bh = sb_bread(inode->i_sb, iblock);
if (!bh) {
@@ -297,17 +300,20 @@ efs_block_t efs_map_block(struct inode *inode, efs_block_t block) {
if (ext.cooked.ex_magic != 0) {
pr_err("extent %d has bad magic number in block %d\n",
cur, iblock);
- if (bh) brelse(bh);
+ if (bh)
+ brelse(bh);
return 0;
}

if ((result = efs_extent_check(&ext, block, sb))) {
- if (bh) brelse(bh);
+ if (bh)
+ brelse(bh);
in->lastextent = cur;
return result;
}
}
- if (bh) brelse(bh);
+ if (bh)
+ brelse(bh);
pr_err("%s() failed to map block %u (indir)\n", __func__, block);
return 0;
}
--
2.29.2

2021-02-05 04:57:07

by Amy Parker

[permalink] [raw]
Subject: [PATCH 2/3] fs/efs: Correct spacing after C keywords

In EFS code, some C keywords (most commonly 'for') do not have spaces before their instructions, such as for() vs for (). The kernel style guide indicates that these should be of the latter variant. This patch updates them accordingly.

Signed-off-by: Amy Parker <[email protected]>
---
fs/efs/inode.c | 8 ++++----
fs/efs/namei.c | 2 +-
fs/efs/super.c | 10 +++++-----
3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/fs/efs/inode.c b/fs/efs/inode.c
index 36d6c45046e2..2cc55d514421 100644
--- a/fs/efs/inode.c
+++ b/fs/efs/inode.c
@@ -130,7 +130,7 @@ struct inode *efs_iget(struct super_block *super, unsigned long ino)
in->lastextent = 0;

/* copy the extents contained within the inode to memory */
- for(i = 0; i < EFS_DIRECTEXTENTS; i++) {
+ for (i = 0; i < EFS_DIRECTEXTENTS; i++) {
extent_copy(&(efs_inode->di_u.di_extents[i]), &(in->extents[i]));
if (i < in->numextents && in->extents[i].cooked.ex_magic != 0) {
pr_warn("extent %d has bad magic number in inode %lu\n",
@@ -227,7 +227,7 @@ efs_block_t efs_map_block(struct inode *inode, efs_block_t block) {
* check the stored extents in the inode
* start with next extent and check forwards
*/
- for(dirext = 1; dirext < direxts; dirext++) {
+ for (dirext = 1; dirext < direxts; dirext++) {
cur = (last + dirext) % in->numextents;
if ((result = efs_extent_check(&in->extents[cur], block, sb))) {
in->lastextent = cur;
@@ -244,7 +244,7 @@ efs_block_t efs_map_block(struct inode *inode, efs_block_t block) {
direxts = in->extents[0].cooked.ex_offset;
indexts = in->numextents;

- for(indext = 0; indext < indexts; indext++) {
+ for (indext = 0; indext < indexts; indext++) {
cur = (last + indext) % indexts;

/*
@@ -255,7 +255,7 @@ efs_block_t efs_map_block(struct inode *inode, efs_block_t block) {
*
*/
ibase = 0;
- for(dirext = 0; cur < ibase && dirext < direxts; dirext++) {
+ for (dirext = 0; cur < ibase && dirext < direxts; dirext++) {
ibase += in->extents[dirext].cooked.ex_length *
(EFS_BLOCKSIZE / sizeof(efs_extent));
}
diff --git a/fs/efs/namei.c b/fs/efs/namei.c
index 38961ee1d1af..65d9c7f4d0c0 100644
--- a/fs/efs/namei.c
+++ b/fs/efs/namei.c
@@ -28,7 +28,7 @@ static efs_ino_t efs_find_entry(struct inode *inode, const char *name, int len)
pr_warn("%s(): directory size not a multiple of EFS_DIRBSIZE\n",
__func__);

- for(block = 0; block < inode->i_blocks; block++) {
+ for (block = 0; block < inode->i_blocks; block++) {

bh = sb_bread(inode->i_sb, efs_bmap(inode, block));
if (!bh) {
diff --git a/fs/efs/super.c b/fs/efs/super.c
index 874d82096b2f..dd97a071f971 100644
--- a/fs/efs/super.c
+++ b/fs/efs/super.c
@@ -169,7 +169,7 @@ static efs_block_t efs_validate_vh(struct volume_header *vh) {
return 0;

ui = ((__be32 *) (vh + 1)) - 1;
- for(csum = 0; ui >= ((__be32 *) vh);) {
+ for (csum = 0; ui >= ((__be32 *) vh);) {
cs = *ui--;
csum += be32_to_cpu(cs);
}
@@ -181,11 +181,11 @@ static efs_block_t efs_validate_vh(struct volume_header *vh) {
#ifdef DEBUG
pr_debug("bf: \"%16s\"\n", vh->vh_bootfile);

- for(i = 0; i < NVDIR; i++) {
+ for (i = 0; i < NVDIR; i++) {
int j;
char name[VDNAMESIZE+1];

- for(j = 0; j < VDNAMESIZE; j++) {
+ for (j = 0; j < VDNAMESIZE; j++) {
name[j] = vh->vh_vd[i].vd_name[j];
}
name[j] = (char) 0;
@@ -198,9 +198,9 @@ static efs_block_t efs_validate_vh(struct volume_header *vh) {
}
#endif

- for(i = 0; i < NPARTAB; i++) {
+ for (i = 0; i < NPARTAB; i++) {
pt_type = (int) be32_to_cpu(vh->vh_pt[i].pt_type);
- for(pt_entry = sgi_pt_types; pt_entry->pt_name; pt_entry++) {
+ for (pt_entry = sgi_pt_types; pt_entry->pt_name; pt_entry++) {
if (pt_type == pt_entry->pt_type) break;
}
#ifdef DEBUG
--
2.29.2

2021-02-05 13:26:08

by David Sterba

[permalink] [raw]
Subject: Re: [PATCH 0/3] fs/efs: Follow kernel style guide

On Thu, Feb 04, 2021 at 08:52:14PM -0800, Amy Parker wrote:
> As the EFS driver is old and non-maintained,

Is anybody using EFS on current kernels? There's not much point updating
it to current coding style, deleting fs/efs is probably the best option.

The EFS name is common for several filesystems, not to be confused with
eg. Encrypted File System. In linux it's the IRIX version, check
Kconfig, and you could hardly find the utilities to create such
filesystem.

2021-02-05 23:23:40

by Amy Parker

[permalink] [raw]
Subject: Re: [PATCH 0/3] fs/efs: Follow kernel style guide

On Fri, Feb 5, 2021 at 5:1 AM David Sterba <[email protected]> wrote:
>
> On Thu, Feb 04, 2021 at 08:52:14PM -0800, Amy Parker wrote:
> > As the EFS driver is old and non-maintained,
>
> Is anybody using EFS on current kernels? There's not much point updating
> it to current coding style, deleting fs/efs is probably the best option.
>

Wouldn't be surprised if there's a few systems out there that haven't
migrated at all.

> The EFS name is common for several filesystems, not to be confused with
> eg. Encrypted File System. In linux it's the IRIX version, check
> Kconfig, and you could hardly find the utilities to create such
> filesystem.

Ah yep, good point.

-Amy IP

2021-02-06 03:15:00

by Amy Parker

[permalink] [raw]
Subject: Re: [PATCH 0/3] fs/efs: Follow kernel style guide

On Fri, Feb 5, 2021 at 2:37 PM Richard Weinberger
<[email protected]> wrote:
>
> On Fri, Feb 5, 2021 at 11:26 PM Amy Parker <[email protected]> wrote:
> >
> > On Fri, Feb 5, 2021 at 5:1 AM David Sterba <[email protected]> wrote:
> > >
> > > On Thu, Feb 04, 2021 at 08:52:14PM -0800, Amy Parker wrote:
> > > > As the EFS driver is old and non-maintained,
> > >
> > > Is anybody using EFS on current kernels? There's not much point updating
> > > it to current coding style, deleting fs/efs is probably the best option.
> > >
> >
> > Wouldn't be surprised if there's a few systems out there that haven't
> > migrated at all.
>
> Before ripping it from the kernel source you could do a FUSE port of EFS.
> That way old filesystems can still get used on Linux.

A FUSE port of EFS would be a great idea. Know anyone that would be
interested in working on it? I might try picking it up if no one else
wants it, we'll see.

2021-02-06 03:39:14

by Richard Weinberger

[permalink] [raw]
Subject: Re: [PATCH 0/3] fs/efs: Follow kernel style guide

On Fri, Feb 5, 2021 at 11:26 PM Amy Parker <[email protected]> wrote:
>
> On Fri, Feb 5, 2021 at 5:1 AM David Sterba <[email protected]> wrote:
> >
> > On Thu, Feb 04, 2021 at 08:52:14PM -0800, Amy Parker wrote:
> > > As the EFS driver is old and non-maintained,
> >
> > Is anybody using EFS on current kernels? There's not much point updating
> > it to current coding style, deleting fs/efs is probably the best option.
> >
>
> Wouldn't be surprised if there's a few systems out there that haven't
> migrated at all.

Before ripping it from the kernel source you could do a FUSE port of EFS.
That way old filesystems can still get used on Linux.

--
Thanks,
//richard

2021-02-08 00:20:19

by David Sterba

[permalink] [raw]
Subject: Re: [PATCH 0/3] fs/efs: Follow kernel style guide

On Fri, Feb 05, 2021 at 11:37:46PM +0100, Richard Weinberger wrote:
> On Fri, Feb 5, 2021 at 11:26 PM Amy Parker <[email protected]> wrote:
> >
> > On Fri, Feb 5, 2021 at 5:1 AM David Sterba <[email protected]> wrote:
> > >
> > > On Thu, Feb 04, 2021 at 08:52:14PM -0800, Amy Parker wrote:
> > > > As the EFS driver is old and non-maintained,
> > >
> > > Is anybody using EFS on current kernels? There's not much point updating
> > > it to current coding style, deleting fs/efs is probably the best option.
> > >
> >
> > Wouldn't be surprised if there's a few systems out there that haven't
> > migrated at all.
>
> Before ripping it from the kernel source you could do a FUSE port of EFS.
> That way old filesystems can still get used on Linux.

Agreed, replacing the obsolete filesystems by FUSE implementations would
be great. Regarding EFS I got pointed to
https://github.com/sophaskins/efs2tar that allows to access the old IRIX
CDs (can be found on archive.org), so there's something.