reduces traffic to the server.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 1 +
fs/orangefs/orangefs-kernel.h | 10
fs/orangefs/super.c | 9 +++
fs/orangefs/xattr.c | 104 ++
4 files changed, 124 insertions
and use the
cached size. All of the in-kernel callers that wanted size did not want
a cached size. Now a getattr cannot use the cached size if it wants
size at all.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c| 17 -
fs/orangefs/inode.c
This should be a no-op now. When inode writeback works, this will
prevent a getattr from overwriting inode data while an inode is
transitioning to dirty.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 4 ++--
fs/orangefs/orangefs-utils.c | 33
r that
lock
if getattr_time ok or attr_valid, unlock and return
else, copy in
update getattr_time
unlock
Signed-off-by: Martin Brandenburg
---
fs/orangefs/acl.c | 4 +-
fs/orangefs/inode.c | 76 ++-
fs/orangefs/n
request.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c | 19 ++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index 5eda483263ae..d5ecfea3288a 100644
--- a/fs/orangefs/file.c
+++ b/fs/orangefs/file.c
@@ -596,7
Signed-off-by: Martin Brandenburg
---
fs/orangefs/orangefs-kernel.h | 1 +
fs/orangefs/orangefs-utils.c | 2 +-
fs/orangefs/waitqueue.c | 18 ++
3 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/fs/orangefs/orangefs-kernel.h b/fs/orangefs/orangefs-kernel.h
Now orangefs_inode_getattr fills from cache if an inode has dirty pages.
also if attr_valid and dirty pages and !flags, we spin on inode writeback
before returning if pages still dirty after: should it be other way
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c | 77
truncate_inode_pages now in the write path so a
subsequent read sees the new data.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c| 68 ---
fs/orangefs/inode.c | 63
fs/orangefs/orangefs-kernel.h | 13
Go through pages and look for a consecutive writable region. After
finding 128 consecutive writable pages or when finding a non-consecutive
region, do the write.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c| 1 +
fs/orangefs/inode.c | 144
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 10 +-
fs/orangefs/orangefs-cache.c | 24 ++--
fs/orangefs/orangefs-kernel.h | 6 --
fs/orangefs/orangefs-mod.c| 10 +-
4 files changed, 36 insertions(+), 14 deletions(-)
diff
Would happen if an inode is dirty but whatever happened is not something
that can be written out to OrangeFS.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/orangefs-utils.c | 5 +
1 file changed, 5 insertions(+)
diff --git a/fs/orangefs/orangefs-utils.c b/fs/orangefs/orangefs-utils.c
This is a fairly big change, but ultimately it's not a lot of code.
Implement write_inode and then avoid the call to orangefs_inode_setattr
within orangefs_setattr.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 11 +++
fs/orangefs/super.c | 16
2
Otherwise the next page can't possibly be an append and it'll
just sit there and write pages one by one until it flushes the
saved region at the very end.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 8
1 file changed, 8 insertions(+)
diff --git a/fs/orangefs
Signed-off-by: Martin Brandenburg
---
fs/orangefs/super.c | 21 ++---
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/fs/orangefs/super.c b/fs/orangefs/super.c
index 4c36481208f5..61bec955b285 100644
--- a/fs/orangefs/super.c
+++ b/fs/orangefs/super.c
@@ -406,15
It's a copy of the loop which would run in read_pages from
mm/readahead.c.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 39 +--
1 file changed, 1 insertion(+), 38 deletions(-)
diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c
since it does not yet know the pending setattr.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c | 10 ++
fs/orangefs/namei.c | 7 ++-
2 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index 3ab6e5126899..aec17635a50f 1
The previous fixed count of 128 was arbitrary.
I see about a 10% performance increase on large block size I/O since
the count is now 1024 (given the default four megabyte client-core
buffer).
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 27 ---
1 file
When an inode is created, we fetch attributes from the server. There is
no need to turn around and invalidate them.
No need to initialize attributes after the getattr either. Either it'll
be exactly the same, or it'll be something else and wrong.
Signed-off-by: Martin Brandenbur
an improved releasepage implementation and a
launder_page implementation.
We also size the writepages buffer based on the client core buffer.
However I'm not happy with the memory allocation in writepages.
Mike, I know you've had some trouble with the original series. I'd like
to know if t
.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c| 12 +-
fs/orangefs/inode.c | 267 ++
fs/orangefs/orangefs-kernel.h | 12 +-
3 files changed, 261 insertions(+), 30 deletions(-)
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
When an inode is created, we fetch attributes from the server. There is
no need to turn around and invalidate them.
No need to initialize attributes after the getattr either. Either it'll
be exactly the same, or it'll be something else and wrong.
Signed-off-by: Martin Brandenbur
and use the
cached size. All of the in-kernel callers that wanted size did not want
a cached size. Now a getattr cannot use the cached size if it wants
size at all.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c| 17 -
fs/orangefs/inode.c
reduces traffic to the server.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 1 +
fs/orangefs/orangefs-kernel.h | 10
fs/orangefs/super.c | 9 +++
fs/orangefs/xattr.c | 104 ++
4 files changed, 124 insertions
since it does not yet know the pending setattr.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c | 10 ++
fs/orangefs/namei.c | 7 ++-
2 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index 3ab6e5126899..aec17635a50f 1
This should be a no-op now. When inode writeback works, this will
prevent a getattr from overwriting inode data while an inode is
transitioning to dirty.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 4 ++--
fs/orangefs/orangefs-utils.c | 33
This is a fairly big change, but ultimately it's not a lot of code.
Implement write_inode and then avoid the call to orangefs_inode_setattr
within orangefs_setattr.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 11 +++
fs/orangefs/super.c | 16
2
It's a copy of the loop which would run in read_pages from
mm/readahead.c.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 39 +--
1 file changed, 1 insertion(+), 38 deletions(-)
diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c
r that
lock
if getattr_time ok or attr_valid, unlock and return
else, copy in
update getattr_time
unlock
Signed-off-by: Martin Brandenburg
---
fs/orangefs/acl.c | 4 +-
fs/orangefs/inode.c | 76 ++-
fs/orangefs/n
truncate_inode_pages now in the write path so a
subsequent read sees the new data.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c| 68 ---
fs/orangefs/inode.c | 63
fs/orangefs/orangefs-kernel.h | 13
Now orangefs_inode_getattr fills from cache if an inode has dirty pages.
also if attr_valid and dirty pages and !flags, we spin on inode writeback
before returning if pages still dirty after: should it be other way
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c | 77
Signed-off-by: Martin Brandenburg
---
fs/orangefs/orangefs-kernel.h | 1 +
fs/orangefs/orangefs-utils.c | 2 +-
fs/orangefs/waitqueue.c | 18 ++
3 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/fs/orangefs/orangefs-kernel.h b/fs/orangefs/orangefs-kernel.h
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 10 +-
fs/orangefs/orangefs-cache.c | 24 ++--
fs/orangefs/orangefs-kernel.h | 6 --
fs/orangefs/orangefs-mod.c| 10 +-
4 files changed, 36 insertions(+), 14 deletions(-)
diff
Would happen if an inode is dirty but whatever happened is not something
that can be written out to OrangeFS.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/orangefs-utils.c | 5 +
1 file changed, 5 insertions(+)
diff --git a/fs/orangefs/orangefs-utils.c b/fs/orangefs/orangefs-utils.c
Signed-off-by: Martin Brandenburg
---
fs/orangefs/super.c | 21 ++---
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/fs/orangefs/super.c b/fs/orangefs/super.c
index 4c36481208f5..61bec955b285 100644
--- a/fs/orangefs/super.c
+++ b/fs/orangefs/super.c
@@ -406,15
request.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c | 19 ++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index 5eda483263ae..d5ecfea3288a 100644
--- a/fs/orangefs/file.c
+++ b/fs/orangefs/file.c
@@ -596,7
.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c| 12 +-
fs/orangefs/inode.c | 243 ++
fs/orangefs/orangefs-kernel.h | 12 +-
3 files changed, 237 insertions(+), 30 deletions(-)
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
Go through pages and look for a consecutive writable region. After
finding 128 consecutive writable pages or when finding a non-consecutive
region, do the write.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 135 +-
fs/orangefs/orangefs
ghtforward except for the need to separate writes from
different uid/gid pairs due to the design of our server.
Martin Brandenburg (17):
orangefs: implement xattr cache
orangefs: do not invalidate attributes on inode create
orangefs: simply orangefs_inode_getattr interface
orangefs: update
It was wrong.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/dcache.c | 17 +++--
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/fs/orangefs/dcache.c b/fs/orangefs/dcache.c
index ae782df5c063..c7aa5c923477 100644
--- a/fs/orangefs/dcache.c
+++ b/fs/orangefs
Signed-off-by: Martin Brandenburg
---
fs/orangefs/orangefs-debugfs.c | 2 +-
fs/orangefs/orangefs-debugfs.h | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/fs/orangefs/orangefs-debugfs.c b/fs/orangefs/orangefs-debugfs.c
index 1c59dff530de..67d531ad5a56 100644
--- a/fs
It wasn't possible to enable it, and it would've had very little effect.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/orangefs-kernel.h | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/fs/orangefs/orangefs-kernel.h b/fs/orangefs/orangefs-kern
Signed-off-by: Martin Brandenburg
---
fs/orangefs/orangefs-debug.h | 6
fs/orangefs/orangefs-kernel.h | 77 ---
fs/orangefs/protocol.h| 45 -
3 files changed, 128 deletions(-)
diff --git a/fs/orangefs/orangefs
Signed-off-by: Martin Brandenburg
---
fs/orangefs/devorangefs-req.c | 52 +--
fs/orangefs/inode.c | 4 ++--
fs/orangefs/orangefs-kernel.h | 3 ---
3 files changed, 28 insertions(+), 31 deletions(-)
diff --git a/fs/orangefs/devorangefs-req.c b
s/orangefs/*.h
to include/uapi/linux/orangefs.h.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/acl.c| 1 -
fs/orangefs/dcache.c | 1 -
fs/orangefs/devorangefs-req.c| 2 -
fs/orangefs/dir.c| 1 -
fs/orangefs/downcall.h | 137 --
he kernel doesn't need to know.
Martin Brandenburg (7):
orangefs: make orangefs_client_debug_init static
orangefs: remove gossip_ldebug and gossip_lerr
orangefs: remove ORANGEFS_KERNEL_DEBUG
orangefs: make orangefs_make_bad_inode static
ornagefs: make several *_operations structs st
Signed-off-by: Martin Brandenburg
---
fs/orangefs/orangefs-kernel.h | 2 --
fs/orangefs/orangefs-utils.c | 38 +++---
2 files changed, 19 insertions(+), 21 deletions(-)
diff --git a/fs/orangefs/orangefs-kernel.h b/fs/orangefs/orangefs-kernel.h
index
gossip_ldebug is unused.
gossip_lerr is used in two places. The messages are unique so line
numbers are unnecessary.
Also remove support for compiling gossip messages out. It wasn't
possible to enable it anyway.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/orangefs-debugfs.c
d-off-by: Martin Brandenburg
Cc: Al Viro
Cc: Mike Marshall
Cc: sta...@vger.kernel.org
---
fs/orangefs/file.c| 7 ++-
fs/orangefs/orangefs-kernel.h | 11 ---
2 files changed, 2 insertions(+), 16 deletions(-)
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index 1668
set_op_state_purged can delete the op.
Signed-off-by: Martin Brandenburg
Cc: sta...@vger.kernel.org
---
fs/orangefs/waitqueue.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/orangefs/waitqueue.c b/fs/orangefs/waitqueue.c
index 835c6e148afc..0577d6dba8c8 100644
--- a
to is not reinitialized, so if there are no more eligible
ops on the list, the code runs again on the already handled op.
This is triggered by interrupting a process while the op is being copied
to the client-core. It's a fairly small window, but it's there.
Signed-off-by: Martin Brand
Linus, I'd appreciate it if these can make it into 4.15 if possible.
Both fix concurrency bugs I've found within the last week.
Martin Brandenburg (2):
orangefs: use list_for_each_entry_safe in purge_waiting_ops
orangefs: initialize op on loop restart in orangefs_devreq_read
f
From: Martin Brandenburg
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c | 95 +++---
1 file changed, 19 insertions(+), 76 deletions(-)
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index 1668fd645c45..44879b1ff33e 100644
--- a
From: Martin Brandenburg
Signed-off-by: Martin Brandenburg
---
fs/orangefs/orangefs-utils.c | 4
1 file changed, 4 deletions(-)
diff --git a/fs/orangefs/orangefs-utils.c b/fs/orangefs/orangefs-utils.c
index 97fe93129f38..553b3ded51cd 100644
--- a/fs/orangefs/orangefs-utils.c
+++ b/fs
From: Martin Brandenburg
Signed-off-by: Martin Brandenburg
---
fs/orangefs/dcache.c | 17 +++--
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/fs/orangefs/dcache.c b/fs/orangefs/dcache.c
index ae782df5c063..c7aa5c923477 100644
--- a/fs/orangefs/dcache.c
+++ b/fs
From: Martin Brandenburg
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c | 132
fs/orangefs/inode.c | 132
2 files changed, 132 insertions(+), 132 deletions(-)
diff --git a/fs
From: Martin Brandenburg
It's a copy of the loop which runs if it's not implemented from
read_pages from mm/readahead.c. Best to just use the generic code.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c | 39 +--
1 file changed, 1
From: Martin Brandenburg
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c| 6 ++
fs/orangefs/orangefs-kernel.h | 5 -
2 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index 3e5d467e24e6..afb94ed7cef3 100644
--- a
From: Martin Brandenburg
This can't happen since it would have been caught (and a graceful
error returned) earlier.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 14 --
fs/orangefs/orangefs-utils.c | 4
2 files changed, 8 insertions(+), 10 dele
From: Martin Brandenburg
Since orangefs_file_read_iter now calls generic_file_read_iter, O_DIRECT
now goes through direct_IO in the read case. In the write case,
orangefs_file_write_iter never calls direct_IO, but handles the direct
write manually.
Signed-off-by: Martin Brandenburg
---
fs
From: Martin Brandenburg
No need to manually implement this. The generic implementation handles
direct IO as well.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c | 17 +++--
1 file changed, 3 insertions(+), 14 deletions(-)
diff --git a/fs/orangefs/file.c b/fs/orangefs
From: Martin Brandenburg
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c | 4 +---
fs/orangefs/namei.c | 4
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index afb94ed7cef3..8dfa0e8c7326 100644
--- a/fs/orangefs/file.c
From: Martin Brandenburg
With this and the previous commit, OrangeFS is capable of writing
through the page cache.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c | 132 +++-
fs/orangefs/inode.c | 2 +
fs/orangefs/super.c | 8
Now inodes will be marked dirty and written back at the appopriate time.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/acl.c | 11 +++
fs/orangefs/inode.c | 17 -
fs/orangefs/namei.c | 17 -
fs/orangefs/orangefs
=/orangefs/foo bs=256 count=32768; sync)
32768+0 records in
32768+0 records out
8388608 bytes (8.4 MB, 8.0 MiB) copied, 0.0438278 s, 191 MB/s
real0m2.181s
user0m0.002s
sys 0m0.048s
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 1 +
fs/orangefs/orangefs-kernel.h | 10
From: Martin Brandenburg
This is a heavily modified revert of
70823b9bf3290855a7df895d89bd8209182b52e3.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/super.c | 21 ++---
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/fs/orangefs/super.c b/fs/orangefs
From: Martin Brandenburg
This is a big change, but it boils down to implementing write_inode,
changing generic_delete_inode to generic_drop_inode, and changing
set/getattr to set/get from the in-memory inode.
The OrangeFS client requires a real getattr prior to any directory
operations.
Signed
From: Martin Brandenburg
Must retrieve size before running filemap_fault so the kernel has
an up-to-date size.
This should have been caught by xfstests generic/246, but it was masked
by orangefs_new_inode, which set i_size to PAGE_SIZE. When nothing
caused a getattr prior to a pagefault
From: Martin Brandenburg
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c
index 5c451e245cf7..cf6924c36a22 100644
--- a/fs/orangefs/inode.c
+++ b/fs/orangefs/inode.c
t was six months ago, but I'm
still worried about how it will act when run for days, weeks, months at
a time and across multiple machines. This is the next step in my
testing.
I'd appreciate any reviews, even if just to tell me that I've done
everything completely wrong.
Martin Br
From: Martin Brandenburg
When an inode is created, we fetch attributes from the server. There is
no need to turn around and invalidate them.
No need to initialize attributes after the getattr either. Either we'll
do nothing or do something wrong.
Signed-off-by: Martin Brandenburg
--
.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c | 27 +--
1 file changed, 25 insertions(+), 2 deletions(-)
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index 44879b1ff33e..c88846dc432a 100644
--- a/fs/orangefs/file.c
+++ b/fs/orangefs/file.c
@@ -531,6
de here is completely optimal.
The others are supposed to improve performance but appear to be below
the noise floor.
Martin Brandenburg (5):
orangefs: open code short single-use functions
orangefs: implement vm_ops->fault
orangefs: do not invalidate attributes on inode create
orangefs: do n
When an inode is created, we fetch attributes from the server. There is
no need to turn around and invalidate them.
No need to initialize attributes after the getattr either. Either we'll
do nothing or do something wrong.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/dcache.c | 17 +++--
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/fs/orangefs/dcache.c b/fs/orangefs/dcache.c
index ae782df5c063..c7aa5c923477 100644
--- a/fs/orangefs/dcache.c
+++ b/fs/orangefs/dcache.c
@@ -118,8
Signed-off-by: Martin Brandenburg
---
fs/orangefs/orangefs-utils.c | 4
1 file changed, 4 deletions(-)
diff --git a/fs/orangefs/orangefs-utils.c b/fs/orangefs/orangefs-utils.c
index 97fe93129f38..553b3ded51cd 100644
--- a/fs/orangefs/orangefs-utils.c
+++ b/fs/orangefs/orangefs-utils.c
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c | 95 +++---
1 file changed, 19 insertions(+), 76 deletions(-)
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index 1668fd645c45..44879b1ff33e 100644
--- a/fs/orangefs/file.c
+++ b/fs
Prevents holding an unnecessary op while the kernel processes another op
and yields the CPU.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/namei.c | 24 +++-
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/fs/orangefs/namei.c b/fs/orangefs/namei.c
index
, the attribute change should be written out
immediately.
Fixes generic/120.
In namei.c, there are several places where the directory mtime and ctime
are set, but only the mtime is sent to the server. These don't seem
right, but I've left them as is for now.
Signed-off-by: Martin B
his is right. The OrangeFS userspace tools and the kernel both
pass the zero byte. The server itself and our database is perfectly
capable of handling any byte array. The value can be passed unchanged
though (and you have left that). We still pass xfstests generic/020
with this applied.
Revi
c which deadlocks.
Signed-off-by: Martin Brandenburg
Cc: sta...@vger.kernel.org
---
fs/orangefs/devorangefs-req.c | 9 +++--
fs/orangefs/orangefs-kernel.h | 1 +
fs/orangefs/super.c | 23 ---
3 files changed, 24 insertions(+), 9 deletions(-)
diff --git a/fs/o
Signed-off-by: Martin Brandenburg
---
fs/orangefs/orangefs-kernel.h | 5 -
1 file changed, 5 deletions(-)
diff --git a/fs/orangefs/orangefs-kernel.h b/fs/orangefs/orangefs-kernel.h
index 5e48a0b..24b0648 100644
--- a/fs/orangefs/orangefs-kernel.h
+++ b/fs/orangefs/orangefs-kernel.h
Also don't check flags as this has been validated by the VFS already.
Fix an off-by-one error in the max size checking.
Stop logging just because userspace wants to write attributes which do
not fit.
This and the previous commit fix xfstests generic/020.
Signed-off-by: Martin Brande
Since orangefs_lookup calls orangefs_iget which calls
orangefs_inode_getattr, getattr_time will get set.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/namei.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/fs/orangefs/namei.c b/fs/orangefs/namei.c
index a290ff6..7c31593 100644
--- a
They are clones of the ORANGEFS_ITERATE macros in use elsewhere. Delete
ORANGEFS_ITERATE_NEXT which is a hack previously used by readdir.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/dir.c | 8
fs/orangefs/protocol.h | 9 ++---
2 files changed, 6 insertions(+), 11
return them all. Fetching the size requires
communicating with every I/O server (that the file is distributed
across). Therefore if asked for anything except size, get everything
except size, and if asked for size, get everything.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/file.c
This and the previous commit fix xfstests generic/257.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/dir.c | 48 ++--
1 file changed, 34 insertions(+), 14 deletions(-)
diff --git a/fs/orangefs/dir.c b/fs/orangefs/dir.c
index 3f82a73..c48220f
In the past, readdir assumed that the user buffer will be large enough
that all entries from the server will fit. If this was not true,
entries would be skipped.
Since it works now, request 512 entries rather than 96 per server
operation.
Signed-off-by: Martin Brandenburg
---
fs/orangefs
ate did not happen if nothing had requested
the size after the write in echo. Thus i_size was zero (not present)
and the orangefs_setattr though i_size was zero and there was nothing to
do.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/inode.c | 3 +--
1 file changed, 1 insertion(+), 2 delet
shorter than the maximum, the old code could
usually handle several server requests before running out of space.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/dir.c | 246 ++
1 file changed, 172 insertions(+), 74 deletions(-)
diff --git a/fs
Signed-off-by: Martin Brandenburg
---
fs/orangefs/xattr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/orangefs/xattr.c b/fs/orangefs/xattr.c
index 74a81b1..fba4db7 100644
--- a/fs/orangefs/xattr.c
+++ b/fs/orangefs/xattr.c
@@ -358,7 +358,7 @@ ssize_t orangefs_listxattr
erformance to skip fetching
size if it is not needed. I can't help but wonder if I've missed
something. It passes xfstests, but I don't think it's been through all
our internal tests.
Then there are some miscellaneous fixes.
Martin Brandenburg (10):
orangefs: remove unuse
er.
That's exactly what this is.
Reviewed-by: Martin Brandenburg
>
> Signed-off-by: Christophe JAILLET
> ---
> fs/orangefs/orangefs-sysfs.c | 9 -
> 1 file changed, 9 deletions(-)
>
> diff --git a/fs/orangefs/orangefs-sysfs.c b/fs/orangefs/orangefs-sy
atch, size is always collected to be inserted into the cache.
Thus the bug disappears. If this patch is not accepted during this merge
window, we will send a one-line band-aid for this bug instead.
--------
Martin Brandenburg (5):
orangefs:
.
Martin Brandenburg (5):
orangefs: Use d_time to avoid excessive lookups
orangefs: Cache getattr results.
orangefs: Allow dcache and getattr cache time to be configured.
orangefs: Change default dcache and getattr timeout to 50 msec.
orangefs: Account for jiffies
= NAME_MAX + 1; there is always enough space for a
name plus a NUL byte.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/orangefs-utils.c | 6 +-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/fs/orangefs/orangefs-utils.c b/fs/orangefs/orangefs-utils.c
index 40f5163..f392a6a
From: Martin Brandenburg
The ctime and mtime are always updated on a successful ftruncate and
only updated on a successful truncate where the size changed.
We handle the ``if the size changed'' bit.
This matches FUSE's behavior.
Signed-off-by: Martin Brandenburg
---
fs/orange
From: Martin Brandenburg
Almost everywhere we use strncpy we should use strlcpy. This affects
path names (d_name mostly), symlink targets, and server names.
Leave debugfs code as is for now, though it could use a review as well.
Signed-off-by: Martin Brandenburg
---
fs/orangefs/dcache.c
From: Martin Brandenburg
---
fs/orangefs/dir.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/fs/orangefs/dir.c b/fs/orangefs/dir.c
index ba7dec4..324f0af 100644
--- a/fs/orangefs/dir.c
+++ b/fs/orangefs/dir.c
@@ -153,7 +153,6 @@ static int orangefs_readdir(struct file
On Fri, 1 Apr 2016, Joe Perches wrote:
> Hello Martin.
>
> Here's an orangefs patch I think should be applied:
> https://patchwork.kernel.org/patch/8676461/
>
> You were not cc'd on this as you are not listed as a
> maintainer for orangefs.
>
> Should you be?
>
>
Mike is listed AFAIK.
He's
rsion.
Martin Brandenburg (2):
orangefs: don't put readdir slot twice
orangefs: minimum userspace version is 2.9.3
fs/orangefs/dir.c | 8 +++-
fs/orangefs/protocol.h | 2 +-
2 files changed, 4 insertions(+), 6 deletions(-)
1 - 100 of 101 matches
Mail list logo