- 17 9月, 2010 2 次提交
-
-
由 Sage Weil 提交于
Sending multiple flushsnap messages is problematic because we ignore the response if the tid doesn't match, and the server may only respond to each one once. It's also a waste. So, skip cap_snaps that are already on the flushing list, unless the caller tells us to resend (because we are reconnecting). Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
The cap_snap creation/queueing relies on both the current i_head_snapc _and_ the i_snap_realm pointers being correct, so that the new cap_snap can properly reference the old context and the new i_head_snapc can be updated to reference the new snaprealm's context. To fix this, we: - move inodes completely to the new (split) realm so that i_snap_realm is correct, and - generate the new snapc's _before_ queueing the cap_snaps in ceph_update_snap_trace(). Signed-off-by: NSage Weil <sage@newdream.net>
-
- 15 9月, 2010 2 次提交
-
-
由 Sage Weil 提交于
Stop sending FLUSHSNAP messages when we hit a capsnap that has dirty_pages or is still writing. We'll send the newer capsnaps only after the older ones complete. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
The 'follows' should match the seq for the snap context for the given snap cap, which is the context under which we have been dirtying and writing data and metadata. The snapshot that _contains_ those updates thus _follows_ that context's seq #. Signed-off-by: NSage Weil <sage@newdream.net>
-
- 14 9月, 2010 1 次提交
-
-
由 Sage Weil 提交于
When adding the readdir results to the cache, ceph_set_dentry_offset was clobbered our just-set offset. This can cause the readdir result offsets to get out of sync with the server. Add an argument to the helper so that it does not. This bug was introduced by 1cd3935b. Signed-off-by: NSage Weil <sage@newdream.net>
-
- 12 9月, 2010 4 次提交
-
-
由 Sage Weil 提交于
Cast the value before shifting so that we don't run out of bits with a 32-bit unsigned long. This fixes wrapping of high file offsets into the low 4GB of a file on disk, and the subsequent data corruption for large files. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Fix the reconnect encoding to encode the cap record when the MDS does not have the FLOCK capability (i.e., pre v0.22). Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Yehuda Sadeh 提交于
A wrong parameter was passed to the kunmap. Signed-off-by: NYehuda Sadeh <yehuda@hq.newdream.net> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
When we release a root dentry, particularly after a splice, the parent (actually our) inode was evaluating to NULL and was getting dereferenced by ceph_snap(). This is reproduced by something as simple as mount -t ceph monhost:/a/b mnt mount -t ceph monhost:/a mnt2 ls mnt2 A splice_dentry() would kill the old 'b' inode's root dentry, and we'd crash while releasing it. Fix by checking for both the ROOT and NULL cases explicitly. We only need to invalidate the parent dir when we have a correct parent to invalidate. Signed-off-by: NSage Weil <sage@newdream.net>
-
- 27 8月, 2010 3 次提交
-
-
由 Dan Carpenter 提交于
get_ticket_handler() returns a valid pointer or it returns ERR_PTR(-ENOMEM) if kzalloc() fails. Signed-off-by: NDan Carpenter <error27@gmail.com> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
We are in a position to return an error; do that instead. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Dan Carpenter 提交于
ceph_mdsc_build_path() returns an ERR_PTR but this code is set up to handle NULL returns. Signed-off-by: NDan Carpenter <error27@gmail.com> Signed-off-by: NSage Weil <sage@newdream.net>
-
- 26 8月, 2010 2 次提交
-
-
由 Alan Cox 提交于
Just scrubbing some warnings so I can see real problem ones in the build noise. For 32bit we need to coax gcc politely into believing we really honestly intend to the casts. Using (u64)(unsigned long) means we cast from a pointer to a type of the right size and then extend it. This stops the warning spew. Signed-off-by: NAlan Cox <alan@linux.intel.com> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Dan Carpenter 提交于
ceph_get_inode() returns an ERR_PTR and it doesn't return a NULL. Signed-off-by: NDan Carpenter <error27@gmail.com> Signed-off-by: NSage Weil <sage@newdream.net>
-
- 25 8月, 2010 2 次提交
-
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
We used to use i_head_snapc to keep track of which snapc the current epoch of dirty data was dirtied under. It is used by queue_cap_snap to set up the cap_snap. However, since we queue cap snaps for any dirty caps, not just for dirty file data, we need to keep a valid i_head_snapc anytime we have dirty|flushing caps. This fixes a NULL pointer deref in queue_cap_snap when writing back dirty caps without data (e.g., snaptest-authwb.sh). Signed-off-by: NSage Weil <sage@newdream.net>
-
- 23 8月, 2010 8 次提交
-
-
由 Henry C Chang 提交于
Fix argument order. We want to move the item to the end of the list, not change the position of the head. Signed-off-by: NHenry C Chang <henry_c_chang@tcloudcomputing.com> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
If we hold the EXCL cap, we cannot trust the dir stats from the MDS (num files, subdirs) and must not incorrectly conclude that the directory is empty. If we do, we get can bad results from lookup (bad ENOENT) and bad readdir results. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Michael Rubin 提交于
This allows code outside of the mm core to safely manipulate page state and not worry about the other accounting. Not using these routines means that some code will lose track of the accounting and we get bugs. This has happened once already. Signed-off-by: NMichael Rubin <mrubin@google.com> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
When making a request in the virtual snapdir or a snapped portion of the namespace, we should choose the MDS based on the first nonsnap parent (and its caps). If that is not the best place, we will get forward hints to find the right MDS in the cluster. This fixes ESTALE errors when using the .snap directory and namespace with multiple MDSs. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
When a realm is updated, we need to queue writeback on inodes in that realm _and_ its children. Otherwise, if the inode gets cowed on the server, we can get a hang later due to out-of-sync cap/snap state. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
When we snapshot dirty metadata that needs to be written back to the MDS, include dirty xattr metadata. Make the capsnap reference the encoded xattr blob so that it will be written back in the FLUSHSNAP op. Also fix the capsnap creation guard to include dirty auth or file bits, not just tests specific to dirty file data or file writes in progress (this fixes auth metadata writeback). Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
We should include the xattr metadata blob in the cap update message any time we are flushing dirty state, NOT just when we are also dropping the cap. This fixes async xattr writeback. Also, clean up the code slightly to avoid duplicating the bit test. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
The use of a completion when waiting for session shutdown during umount is inappropriate, given the complexity of the condition. For multiple MDS's, this resulted in the umount thread spinning, often preventing the session close message from being processed in some cases. Switch to a waitqueue and defined a condition helper. This cleans things up nicely. Signed-off-by: NSage Weil <sage@newdream.net>
-
- 11 8月, 2010 1 次提交
-
-
由 Yehuda Sadeh 提交于
Generalize the current statfs synchronous requests, and support pool_ops. Signed-off-by: NYehuda Sadeh <yehuda@hq.newdream.net> Signed-off-by: NSage Weil <sage@newdream.net>
-
- 06 8月, 2010 1 次提交
-
-
由 Sage Weil 提交于
Normally, if the Fb cap bit is being revoked, we queue an async writeback. If there is no dirty data but we still hold the cap, this leaves the client sitting around doing nothing until the cap timeouts expire and the cap is released on its own (as it would have been without the revocation). Instead, only queue writeback if the bit is actually used (i.e., we have dirty data). If not, we can reply to the revocation immediately. Signed-off-by: NSage Weil <sage@newdream.net>
-
- 04 8月, 2010 3 次提交
-
-
由 Sage Weil 提交于
Actually apply the mount option to the mount_args struct. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
This makes checkpatch happy. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
- 03 8月, 2010 7 次提交
-
-
由 Greg Farnum 提交于
Implement flock inode operation to support advisory file locking. All lock/unlock operations are synchronous with the MDS. Lock state is sent when reconnecting to a recovering MDS to restore the shared lock state. Signed-off-by: NGreg Farnum <gregf@hq.newdream.net> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Greg Farnum 提交于
Define the MDS operations and data types for doing file advisory locking with the MDS. Signed-off-by: NGreg Farnum <gregf@hq.newdream.net> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Greg Farnum 提交于
This informs the server that we will accept v2 client_caps format and v2 client_reconnect format messages. Signed-off-by: NGreg Farnum <gregf@hq.newdream.net> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Encode either old or v2 encoding of client_reconnect message, depending on whether the peer has the FLOCK feature bit. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Add support for v2 encoding of MClientCaps, which includes a flock blob. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
The pool info contains a vector for snap_info_t, not snap ids. This fixes the broken decoding, which would declare teh update corrupt when a pool snapshot was created. Signed-off-by: NSage Weil <sage@newdream.net>
-
- 02 8月, 2010 4 次提交
-
-
由 Sage Weil 提交于
The ->sync_fs() super op only needs to wait if wait is true. Otherwise, just get some dirty cap writeback started. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Well, this Shouldn't Happen, so it would be helpful to know the caller when it does. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Include the crush_ruleset in the error message. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-