- 18 5月, 2010 40 次提交
-
-
由 Julia Lawall 提交于
Use kzalloc rather than the combination of kmalloc and memset. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression x,size,flags; statement S; @@ -x = kmalloc(size,flags); +x = kzalloc(size,flags); if (x == NULL) S -memset(x, 0, size); // </smpl> Signed-off-by: NJulia Lawall <julia@diku.dk> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
We invalidate I_COMPLETE and dentry leases in two places: on aborted mds request and on request replay. Use common helper to avoid duplicate code. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
These are used for adjusting behavior, such as conditionally encoding a newer message format. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Notable changes include pool op defines and types, FLOCK feature bit, and new CMPXATTR osd ops. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Drop the 'user.' prefix and use just 'ceph.' for fs virtual xattrs. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
The remove_session_caps() helper is called when an MDS closes out our session (either normally, or as a result of a failed reconnect), and when we tear down state for umount. If we remove the last cap, and there are no cap migrations in progress, then there is little hope of us flushing out that data to the mds (without heroic efforts to reconnect and flush). So, to avoid leaving inodes pinned (due to dirty state) and crashing after umount, throw out dirty caps state and unpin the inodes. Print a warning to the console so we know something was lost. NOTE: Although we drop wrbuffer refs, we don't actually mark pages clean; maybe a truncate should be queued? Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Currently, if our session is closed (due to a timeout, or explicit close, or whatever), we just sit there doing nothing unless/until the MDS restarts, at which point we try to reconnect. Change client to attempt an immediate reconnect if our session is closed. Note that currently the MDS doesn't support this, and our attempt will fail. We'll get a session CLOSE, our caps and dirty cap state will be dropped, and the client will be free to attempt to reconnect. That's clearly not as nice as a successful reconnect, but it at least allows us to try to carry on, and in the future the MDS will support a reconnect and we will fare better. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Pass a ceph_mds_session, since the caller has it. Remove the dead code for sending empty reconnects. It used to be used when the MDS contacted _us_ to solicit a reconnect, and we could reply saying "go away, I have no session." Now we only send reconnects based on the mds map, and only when we do in fact have an open session. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
We used to infer reconnect success by watching the MDS state, essentially assuming that hearing nothing meant things were ok. That wasn't particularly reliable. Instead, the MDS replies with an explicit OPEN message to indicate success. Strictly speaking, this is a protocol change, but it is a backwards compatible one that does not break new clients + old servers or old clients + new servers. At least not yet. Drop unused @all argument from kick_requests while we're at it. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
On OPENING we shouldn't have any caps (or releases). On CLOSING, we should wait until we succeed (and throw it all out), or don't (and are OPEN again). On RECONNECTING we can wait until we are OPEN. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
If the MDS restarts, the expire caps state is no longer shared, and can be thrown out. Caps state will be rebuilt on the MDS during the reconnect process that follows. Zero out any release messages and adjust the release counter accordingly. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Yehuda Sadeh 提交于
This is being done so that we could reuse the statfs infrastructure with other requests that return values. Signed-off-by: NYehuda Sadeh <yehuda@hq.newdream.net> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
The CEPH_FEATURE_NOSRCADDR protocol feature avoids putting the full source address in each message header (twice). This patch switches the client to the new scheme, and _requires_ this feature on the server. The server will support both the old and new schemes. That means an old client will work with a new server, but a new client will not work with an old server. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Dan Carpenter 提交于
We don't ever use "dirty" so we can remove it. Signed-off-by: NDan Carpenter <error27@gmail.com> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
The bdi_setup_and_register() helper doesn't help us since we bdi_init() in create_client() and bdi_register() only when sget() succeeds. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Reported-by: NBill Pemberton <wfp5p@virginia.edu> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Ensure all options are included in /proc/mounts. Some cleanup. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
We want to assign an offset when the dentry goes from null to linked, which is always done by splice_dentry(). Notably, we should NOT assign an offset when a dentry is first created and is still null. BUG if we try to splice a non-null dentry (we shouldn't). Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
This can screw up offsets assigned to new dentries and break dcache readdir results. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Set next_offset to 2 (always 2!), not 0, on readdir finish. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Henry C Chang 提交于
If the version hasn't changed, don't rebuild the index. Signed-off-by: NHenry C Chang <henry_c_chang@tcloudcomputing.com> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
If we use the xattr_blob, clear the pointer so we don't release the memory at the bottom of the fuction. Reported-by: NHenry C Chang <henry_c_chang@tcloudcomputing.com> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Simplify messenger locking, and close race between ceph_con_close() setting the CLOSED bit and con_work() checking the bit, then taking the mutex. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Free dentry_info in error path. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Allow the osd reset timeout to be disabled. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Dan Carpenter 提交于
d_obtain_alias() doesn't return NULL, it returns an ERR_PTR(). Signed-off-by: NDan Carpenter <error27@gmail.com> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Yehuda Sadeh 提交于
Now that the mount thread waits for the osdmap, it needs to be awaken. Signed-off-by: NYehuda Sadeh <yehuda@hq.newdream.net>
-
由 Huang Weiyi 提交于
Remove unused #include's in fs/ceph/super.c Signed-off-by: NHuang Weiyi <weiyi.huang@gmail.com> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Signed-off-by: NYehuda Sadeh <yehuda@hq.newdream.net>
-
由 Sage Weil 提交于
Reset out_keepalive_pending and peer_global_seq, and drop unused var. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
We only need to pass in front_len. Callers can attach any other payload pieces (middle, data) as they see fit. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Returning ERR_PTR(-ENOMEM) is useless extra work. Return NULL on failure instead, and fix up the callers (about half of which were wrong anyway). Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Since we don't need to maintain large pools of messages, we can just use the standard mempool_t. We maintain a msgpool 'wrapper' because we need the mempool_t* in the alloc function, and mempool gives us only pool_data. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Cheng Renquan 提交于
ceph_sb_to_client and ceph_client are really identical, we need to dump one; while function ceph_client is confusing with "struct ceph_client", ceph_sb_to_client's definition is more clear; so we'd better switch all call to ceph_sb_to_client. -static inline struct ceph_client *ceph_client(struct super_block *sb) -{ - return sb->s_fs_info; -} Signed-off-by: NCheng Renquan <crquan@gmail.com> Signed-off-by: NSage Weil <sage@newdream.net>
-