Christian Wünsch | 14 Apr 01:13 2014
Picon

Issue with JFS losing files

Hi there!

I have been working on a very strange JFS-related problem for more
than 4 months now. I hope, you guys can help me fixing this finally...

So, I am developing a video cutting tool for an embedded device
(set-top-box) with Linux operationg system and JFS file system.
My tool uses a quite simple cutting routine, that has been built-in
into the firmware by the manufacturer.

Now, on a (very small) number of users it happens, that while cutting
a recorded video file, this file gets damaged in a mysterious way. All
files that are damaged this way get unrevocably erased during the next
execution of fsck.

On suchlike damaged files, jfs_fsck regularly reports an error like this one:
File system object FF4121 is linked as: /DataFiles/Tierärztin Dr.
Mertens (25).rec
cannot repair the data format error(s) in this file.
cannot repair FF4121.  Will release.

... and then it erases the file.

So, could you please give me a hint, what exactly is meant by this
error message?
And how could such a damage possibly be caused?

If you have any questions or need any further information or debugging
from me, please let me know!

(Continue reading)

Fabian Frederick | 2 Apr 19:29 2014
Picon

[PATCH 1/1] fs/jfs/jfs_inode.c: atomically set inode->i_flags

According to commit 00a1a053ebe5f
("ext4: atomically set inode->i_flags in ext4_set_inode_flags()")

Inspired-by: "Theodore Ts'o" <tytso <at> mit.edu>
Cc: jfs-discussion <at> lists.sourceforge.net
Cc: Andrew Morton <akpm <at> linux-foundation.org>
Signed-off-by: Fabian Frederick <fabf <at> skynet.be>
---
 fs/jfs/jfs_inode.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/fs/jfs/jfs_inode.c b/fs/jfs/jfs_inode.c
index 7f464c5..3309074 100644
--- a/fs/jfs/jfs_inode.c
+++ b/fs/jfs/jfs_inode.c
 <at>  <at>  -29,20 +29,20  <at>  <at> 
 void jfs_set_inode_flags(struct inode *inode)
 {
 	unsigned int flags = JFS_IP(inode)->mode2;
-
-	inode->i_flags &= ~(S_IMMUTABLE | S_APPEND |
-		S_NOATIME | S_DIRSYNC | S_SYNC);
+	unsigned int new_fl = 0;

 	if (flags & JFS_IMMUTABLE_FL)
-		inode->i_flags |= S_IMMUTABLE;
+		new_fl |= S_IMMUTABLE;
 	if (flags & JFS_APPEND_FL)
-		inode->i_flags |= S_APPEND;
+		new_fl |= S_APPEND;
(Continue reading)

Pedro Fonseca | 27 Mar 13:58 2014

Assertion jfs_logmgr.c:2333 assert(bp->l_flag & lbmRELEASE)

Hi,

I've encountered a kernel bug that triggers an assertion in jfs_logmgr.c 
("assert(bp->l_flag & lbmRELEASE)") while running a custom test case on 
jfs (kernel 3.13.5), inside a QEMU based VM.

The assertion was triggered after doing two concurrent writes on 
different files located in the same directory.

Here's the system log output:
> [  244.458647] BUG at 
> /local/pfonseca/piking/kernel-build/linux-3.13.5-fs-static2/fs/jfs/jfs_logmgr.c:2333 
> assert(bp->l_flag & lbmRELEASE)
> [  244.458647] ------------[ cut here ]------------
> [  244.458647] kernel BUG at 
> /local/pfonseca/piking/kernel-build/linux-3.13.5-fs-static2/fs/jfs/jfs_logmgr.c:2333!
> [  244.458647] invalid opcode: 0000 [#1] SMP
> [  244.458647] Modules linked in: jfs loop rtc_cmos tpm_tis pcspkr 
> i2c_piix4
> [  244.458647] CPU: 1 PID: 2655 Comm: loop0 Not tainted 3.13.5 #2
> [  244.458647] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
> [  244.458647] task: c67645f0 ti: c6788000 task.ti: c6788000
> [  244.458647] EIP: 0060:[<e11bc4da>] EFLAGS: 00000046 CPU: 1
> [  244.458647] EIP is at lbmIODone+0x2c6/0x302 [jfs]
> [  244.458647] EAX: 0000007b EBX: cfb9bbc0 ECX: 00000093 EDX: 00000046
> [  244.458647] ESI: 00000297 EDI: c612a080 EBP: c6789ef8 ESP: c6789ecc
> [  244.458647]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
> [  244.458647] CR0: 8005003b CR2: b775d000 CR3: 01adb000 CR4: 00000690
> [  244.458647] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
> [  244.458647] DR6: 00000000 DR7: 00000000
(Continue reading)

Phillip Susi | 18 Mar 02:21 2014

mkfs.jfs < /dev/null crashes with SIGABRT


The report bugs link on jfs.sourceforge.net is empty so I clicked the
email link to get this address to submit this bug report:

Running mkfs.jfs on a file issues an are you sure prompt.  Redirecting
stdin to /dev/null should suppress this prompt but instead crashes
with SIGABRT.

This is with jfsutils version 1.1.15-2.1 on Debian/Ubuntu.

Dave Kleikamp | 18 Feb 23:45 2014
Picon

[GIT PULL] jfs for 3.14-rc4

The following changes since commit c18f7b51200c3c8b76c63e391f9995b65ace9c83:

  jfs: fix generic posix ACL regression (2014-02-08 10:50:58 -0600)

are available in the git repository at:

  git://github.com/kleikamp/linux-shaggy.git tags/jfs-3.14-rc4

for you to fetch changes up to 844fa1b5f8493cff4b976fa7a5b9ebeeafdd75cc:

  jfs: set i_ctime when setting ACL (2014-02-13 15:56:05 -0600)

----------------------------------------------------------------
Another ACL regression. This one more subtle.

----------------------------------------------------------------
Dave Kleikamp (1):
      jfs: set i_ctime when setting ACL

 fs/jfs/acl.c | 2 ++
 1 file changed, 2 insertions(+)

------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
Dave Kleikamp | 13 Feb 23:00 2014
Picon

[PATCH] jfs: set i_ctime when setting ACL

This fixes a regression in 3.14-rc1 where xfstests generic/307 fails.

jfs sets the ctime on the inode when writing an xattr. Previously,
jfs went ahead and stored an acl that can be completely represented
in the traditional permission bits, so the ctime was always set in
the xattr code. The new code doesn't bother storing the acl in that
case, thus the ctime isn't getting set.

Signed-off-by: Dave Kleikamp <dave.kleikamp <at> oracle.com>
Reported-by: Michael L. Semon <mlsemon35 <at> gmail.com>
---
 fs/jfs/acl.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/jfs/acl.c b/fs/jfs/acl.c
index e973b85..5a8ea16 100644
--- a/fs/jfs/acl.c
+++ b/fs/jfs/acl.c
 <at>  <at>  -86,6 +86,8  <at>  <at>  static int __jfs_set_acl(tid_t tid, struct inode *inode, int type,
 		rc = posix_acl_equiv_mode(acl, &inode->i_mode);
 		if (rc < 0)
 			return rc;
+		inode->i_ctime = CURRENT_TIME;
+		mark_inode_dirty(inode);
 		if (rc == 0)
 			acl = NULL;
 		break;
--

-- 
1.8.5.4

(Continue reading)

Dave Kleikamp | 8 Feb 17:59 2014
Picon

[GIT PULL] jfs for 3.14-rc2

The following changes since commit 41f76d8bee06be5a9b301ebf13f61a719ba548c4:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client
(2014-02-07 12:35:56 -0800)

are available in the git repository at:

  git://github.com/kleikamp/linux-shaggy.git tags/jfs-3.14-rc2

for you to fetch changes up to c18f7b51200c3c8b76c63e391f9995b65ace9c83:

  jfs: fix generic posix ACL regression (2014-02-08 10:50:58 -0600)

----------------------------------------------------------------
Fix regression

----------------------------------------------------------------
Dave Kleikamp (1):
      jfs: fix generic posix ACL regression

 fs/jfs/xattr.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk
Dave Kleikamp | 7 Feb 21:59 2014
Picon

[PATCH] jfs: fix generic posix ACL regression

I missed a couple errors in reviewing the patches converting jfs
to use the generic posix ACL function. Setting ACL's currently
fails with -EOPNOTSUPP.

Signed-off-by: Dave Kleikamp <dave.kleikamp <at> oracle.com>
Reported-by: Michael L. Semon <mlsemon35 <at> gmail.com>
Cc: Christoph Hellwig <hch <at> lst.de>
---
 fs/jfs/xattr.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/fs/jfs/xattr.c b/fs/jfs/xattr.c
index 3bd5ee4..46325d5 100644
--- a/fs/jfs/xattr.c
+++ b/fs/jfs/xattr.c
 <at>  <at>  -854,9 +854,6  <at>  <at>  int jfs_setxattr(struct dentry *dentry, const char *name, const void *value,
 	int rc;
 	tid_t tid;

-	if ((rc = can_set_xattr(inode, name, value, value_len)))
-		return rc;
-
 	/*
 	 * If this is a request for a synthetic attribute in the system.*
 	 * namespace use the generic infrastructure to resolve a handler
 <at>  <at>  -865,6 +862,9  <at>  <at>  int jfs_setxattr(struct dentry *dentry, const char *name, const void *value,
 	if (!strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
 		return generic_setxattr(dentry, name, value, value_len, flags);

+	if ((rc = can_set_xattr(inode, name, value, value_len)))
(Continue reading)

Dave Kleikamp | 31 Jan 16:10 2014
Picon

[GIT PULL] jfs for 3.14

The following changes since commit 9a0bb2966efbf30a71c128c3af63307d8b5f5fc0:

  Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux (2014-01-01 11:36:16 -0800)

are available in the git repository at:

  git://github.com/kleikamp/linux-shaggy.git tags/jfs-3.14

for you to fetch changes up to 0439e091e3b1fe41a350540c84857a573fde3d72:

  jfs: fix xattr value size overflow in __jfs_setxattr (2014-01-02 11:36:56 -0600)

----------------------------------------------------------------
Minor bug fix for linux-3.14

----------------------------------------------------------------
Jie Liu (1):
      jfs: fix xattr value size overflow in __jfs_setxattr

 fs/jfs/xattr.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

------------------------------------------------------------------------------
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk
mailing | 10 Jan 10:29 2014
Picon

still many computer using jfs

Hello,
at the past i wrote that i would like to help develop the jfs,
but sadly i have not found the time yet. Hope this would be better
in future.

But i want to tell with this mail that i still use jfs on many
computer (home and company) so that the filesystem is still needed!

Around me there are actually 12 computer using jfs as default file 
system.

Greetings from germany

Andre Nitschke

--
www.nitschke-marl.de

------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
Jeff Liu | 1 Jan 12:19 2014
Picon

[PATCH] jfs: fix xattr value size overflow in __jfs_setxattr

From: Jie Liu <jeff.liu <at> oracle.com>

There is a potential overflow if the specified EA value size is
greater than USHRT_MAX because the size of value is limitted by
the on-disk format (i.e, __le16), this issue could be reflected
via the tests below:
 # touch /jfs/testfile
 # setfattr -n user.comment -v `perl -e 'print "A"x65536'` /jfs/testfile
   setfattr: /jfs/testfile: Invalid argument

Syslog: jfs_xsetattr: xattr_size = 21, new_size = 65557

This patch add pre-checkups of EA value size against USHRT_MAX to
avoid this problem, and return -E2BIG which is consistent with the
VFS setxattr interface.  Moreover, fix the debug code to print the
correct function name.

With this fix:
 setfattr: /jfs/testfile: Argument list too long

Signed-off-by: Jie Liu <jeff.liu <at> oracle.com>
---
 fs/jfs/xattr.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/fs/jfs/xattr.c b/fs/jfs/xattr.c
index d3472f4..21755fb 100644
--- a/fs/jfs/xattr.c
+++ b/fs/jfs/xattr.c
 <at>  <at>  -860,6 +860,17  <at>  <at>  int __jfs_setxattr(tid_t tid, struct inode *inode, const char *name,
(Continue reading)


Gmane